Да. Вы должны указать полный путь к файлу. Вы можете использовать
System.Web.HttpContext.Current.Server.MapPath("~/onno.xml")
, чтобы получить полный путь к файлу (если вы хотите записать в каталог приложения).
Обратите внимание, что HttpContext.Current
недоступно для служб WCF, не работающих в Режим совместимости ASP.NET . Вы можете включить режим совместимости ASP.NET с
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
опция конфигурации и атрибут [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
. Однако это ограничит вашу службу WCF средой ASP.NET. Это не очень хорошая вещь.
Кроме того, вы можете использовать параметр конфигурации для базового пути и использовать
System.IO.Path.Combine(defaultPath, "onno.xml")
чтобы получить полный путь. Это решение более гибкое.
Кроме того, разрешение записи NTFS в этом месте должно быть предоставлено учетной записи пользователя, под которой работает пул приложений.