【问题标题】:Data files not updated on IIS hosted WCF service未在 IIS 托管的 WCF 服务上更新数据文件
【发布时间】: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 相同。

标签: c# wcf iis


【解决方案1】:

我通过在我的部署文件夹中添加对 NETWORK_SERVICE 帐户的写入权限解决了这个问题。它现在可以正常工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-18
    • 2012-07-06
    • 1970-01-01
    • 1970-01-01
    • 2022-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多