【发布时间】:2014-06-17 08:23:56
【问题描述】:
我有一个奇怪的问题。我有一个托管在 IIS7 上的 WCF 服务。IIS 上的服务指向我的部署路径 D:\myService。我的服务从客户端应用程序获取数据并保存到路径上可用的 Xml 文件中D:\MyService\App_Data。我还通过客户端应用程序 UI 中的服务从 Xml 文件中读取当前数据。
当我从客户端更新 xml 数据时,它会更新并读回更新的数据。我还通过 WCF 客户端检查并发现更新的数据存在于服务 xml 文件中。但是当我在 D:\MyService\App_Data 路径中打开 xml 文件时,我看不到更新的数据。我的更新数据保存在哪里?
我尝试重新启动客户端,但它仍然显示我通过服务读取的更新,但 xml 文件没有任何变化。
我的服务行为是
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
public class MyService: IMyService
{
我在服务代码中使用 xml 路径作为
private readonly string mXmlPath = Path.Combine(HostingEnvironment.ApplicationPhysicalPath, "App_Data",
"myDb.xml");
【问题讨论】:
-
该路径是硬编码的还是它的一部分是环境变量?您的 IIS 在与桌面不同的用户下运行。
-
IIS 和桌面的用户相同,它托管在运行客户端的同一系统上。没有硬编码路径,在我的服务代码中,我使用私有只读字符串 mXmlPath = Path.Combine(HostingEnvironment.ApplicationPhysicalPath, "App_Data", "myDb.xml");
-
那么如何编写一个函数将该路径返回给客户端?这样你就可以检查你的文件在哪里结束了?
-
@nvoigt-好主意,让我尝试记录路径。
-
@nvoigt 我检查的路径与 D:\MyService\App_Data\myDb.xml 相同。