【问题标题】:How to setup .Net application to write to Windows share如何设置 .Net 应用程序以写入 Windows 共享
【发布时间】:2012-09-27 16:04:25
【问题描述】:

我在 IIS 7 机器上有一个 .Net 4.0 应用程序,需要将文件写出到单独服务器上的 Windows 共享。我有 IIS 设置来模拟并确保我的用户帐户对另一台服务器上的位置具有写入权限。但是,当我通过浏览器运行我的应用程序时,我会收到一个登录提示,并且在输入我的凭据后,我会收到一个 401 声明

You do not have permission to view this directory or page using the credentials that you supplied.

我确定我输入的密码是正确的,但这只发生在我启动我的应用程序之后(我可以直接进入网页,但是当我点击按钮运行应用程序时,我得到了这个)

我也尝试在 IIS 中取消模拟,但是当我运行应用程序时,我收到 500 错误,服务器上的错误日志显示

An unhandled access exception has occurred. 

我不知道问题可能是什么,但我知道这可能是 IIS 中的权限问题。任何帮助将不胜感激,如果需要更多信息,请告诉我。

编辑

我去了部署应用程序的服务器,我能够运行应用程序以通过 IIS 浏览写入文件,没有任何问题。但是,如果我尝试通过浏览器从桌面运行该应用程序,则会出现错误。

我运行 procmon 并且事件完全相同,相同的用户,所有内容,唯一的区别是结果。我想这是一个跳跃问题,但我不确定如何解决这个问题。谢谢

【问题讨论】:

  • 设置 AppPool 以使用您的用户帐户
  • @StefanP。不,同样的问题,我不认为我想长期这样做。我需要使用 AppPoolIdentity 以外的东西吗?
  • 你看过这篇文章吗,我想它可能会有所帮助:stackoverflow.com/questions/3539142/…
  • @Johnny 我的应用程序池已经是经典的,我不确定其余的。如何授予一台服务器上的 ASP .Net 用户对另一台服务器的写入权限?
  • 您的 IIS 应用程序(身份验证)是否设置为使用“Windows 身份验证”而不是匿名?然后确保 [windows 身份验证] [高级设置] 首先使用 NTLM(上移),因为它更容易传输到其他机器。

标签: c# .net iis permissions


【解决方案1】:

我不确定这是否是修复,但我得到了它的工作,

我将应用程序池设置为作为网络服务运行,启用模拟,但在身份验证部分关闭了 Windows 身份验证。不知道为什么该设置会导致此问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-01
    • 1970-01-01
    • 2011-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多