需要编写一个服务器文本文件作为由 ASP.net 应用程序启动的业务流程的输出。文本文件编写代码位于使用标准流代码的库文件中
在 IDE 中一切正常。
发布并尝试写入文件时失败。IIS 不愿意写入文件系统。
到处翻找和拉头发终于找到了解决办法。它并不漂亮,仅适用于您可以控制 Web 服务器的情况。
需要编写一个服务器文本文件作为由 ASP.net 应用程序启动的业务流程的输出。文本文件编写代码位于使用标准流代码的库文件中
在 IDE 中一切正常。
发布并尝试写入文件时失败。IIS 不愿意写入文件系统。
到处翻找和拉头发终于找到了解决办法。它并不漂亮,仅适用于您可以控制 Web 服务器的情况。
解决方案是:在网络服务器上创建一个物理目录,物理路径为:c:\inetpub\wwwroot\mywebapp\myOutputFileDirectory
创建一个指向该目录的虚拟目录。
使用 Windows 资源管理器将物理目录的写入权限授予 IIS_IUSRS。
在 Streamwriter 代码中使用 c:\inetpub\wwwroot\mywebapp\myOutputFileDirectory 的物理路径
如果您对安全性进行了分类,那么虚拟路径可能会指向 LAN 中更明智的地方,但我已经受够了以感激接受这个小小的面包屑。
刚看到你的回答。
它不需要在您的inetpub或wwwroot目录中,它可以在任何地方,只要为运行应用程序的用户正确设置了安全权限。
但这实际上是需要的。如果不只是想象允许在任何地方进行写访问的后果。
此外,不需要虚拟目录。您可以创建一个像 C:\ProcessOutput 这样的目录,并相应地授予权限,它应该可以正常工作。另一种选择是创建一个服务帐户,并仅在您需要编写该输出文件时在您的应用程序中模拟该用户。