1

我在 Intranet 中有一个网络共享,允许每个人(访客)进行写访问

所以,我在 c# 中编写了一个程序(mojoportal 模块,无论如何它是相同的,我认为),它在该路径中写入一些文件,并且在 Visual Studio 中效果很好。

现在,在 IIS 7.5 中使用相同的程序不起作用,我得到了这个异常:

System.Net.WebException:在 WebClient 请求期间发生异常。---> System.IO.IOException - 登录失败:未知用户名或密码错误。

好吧......因为每个人都可以访问 smb 共享,所以我不明白为什么它在 IIS 上不起作用......

代码是这样的:

WebClient wc = new WebClient();
wc.DownloadFile(urltodownload, smbshare);

它可以是什么?谢谢

4

5 回答 5

5

默认情况下,您的 IIS 服务未授予访问文件共享的权限。您可以尝试将应用程序池标识设置为Local System运行您的站点,或者手动控制从 web.config 执行代码的标识:

<system.web>
  <identity impersonate="true" userName="user with correct rights or admin" password="password"/>
  ...
于 2011-03-17T16:19:13.570 回答
1

您是否尝试过设置凭据?

我相信每个人组仍然需要某种有效的凭据,而无需设置您是匿名的凭据...

wc.Credentials = CredentialCache.DefaultCredentials;
于 2011-03-17T16:09:37.347 回答
0

访问 SMB 共享似乎不是问题,访问存储在urltodownload. 正如 Richard 所说,您可能希望使用默认凭据,即wc.UseDefaultCredentials = true;或某些特定的凭据集,或者将网站设置urltodownload为接受匿名连接。

请参阅方法@MSDN可能导致WebException的原因。DownloadFile

于 2011-03-17T16:13:00.727 回答
0

您需要某种凭据才能使用来自 asp.net 的共享。您可以在 web.config 上设置模拟或使用网络凭据设置 wc.Credentials。在 web.config 中,您将在 system.web 部分下设置以下内容:

<identity impersonate="true" userName="username_here" password="password_here" />
于 2011-03-17T16:15:44.703 回答
0

对于我的 Visual Studio 应用程序 (WinForms),创建强名称密钥 (SNK) 以供应用程序使用是一个简单的操作。

我不确定为什么。

也许在 Visual Studio 中创建 SNK 可以设置我上面的其他作者所指的这些凭据。

希望这可以帮助。

于 2011-03-17T16:28:12.107 回答