1

イントラネットに、すべてのユーザー (ゲスト) に書き込みアクセスを許可するネットワーク共有があります。

それで、そのパスにいくつかのファイルを書き込むプログラム(mojoportalモジュール、とにかく同じだと思います)をc#で作成し、ビジュアルスタジオでうまく機能しました。

現在、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 サービスはファイル共有へのアクセスを許可されていません。アプリケーション プール ID をLocal Systemに設定してサイトを実行するか、web.config からコードを実行する ID を手動で制御できます。

<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

私のVisualStudioアプリケーション(WinForms)の場合、アプリケーションが使用する厳密な名前キー(SNK)を作成するという単純な行為でした。

理由はわかりません。

おそらく、Visual StudioでSNKを作成すると、上記の他の作成者が参照しているこれらの資格情報を設定する方法があります。

お役に立てれば。

于 2011-03-17T16:28:12.107 に答える
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

SMB共有へのアクセスの問題ではなく、に保存されているWebサイトへのアクセスの問題のようurltodownloadです。リチャードが言ったように、デフォルトの資格情報、つまりwc.UseDefaultCredentials = true;特定の資格情報セットを使用するか、urltodownload匿名接続を受け入れるように Web サイトをセットアップすることができます。

@MSDNメソッドの原因WebExceptionを参照してください。DownloadFile

于 2011-03-17T16:13:00.727 に答える