1

クライアントからファイル アップロード コントロールを使用して画像をアップロードし、それをストリーム オブジェクトに変換して wcf サービスに送信します。このプロセスは asp.net アプリケーションで動作しますが、このアプリケーションを IIS 5.1 でホストすると、エラーが表示されているドキュメント

パス「C:\Documents and Settings\patnayak\Desktop\Temp.xlsx」へのアクセスが拒否されました

Google検索の後、システム内のTemp.xlsxへのasp.netユーザー権限へのアクセスを許可すると、機能しています。ファイルをアップロードする他のシステムはどうですか。

私のコード:

            ClientBOL.CD.CPI2Library objLib = new ClientBOL.CD.CPI2Library();
            UDO.CPI2LibraryList libfiles = new UDO.CPI2LibraryList(true, "");

            HttpFileCollection hfc = Request.Files;
            libfiles.CPI2Libraries = new UDO.CPI2Library[hfc.Count];
            for (int i = 0; i < hfc.Count; i++)
            {
                HttpPostedFile hpf = hfc[i];
                if (hpf.ContentLength > 0)
                {
                                            libfiles.CPI2Libraries[i] = new UDO.CPI2Library();

                    libfiles.CPI2Libraries[i].FileName = System.IO.Path.GetFileName(hpf.FileName);
                    libfiles.CPI2Libraries[i].FiletypeId = GetFileTypeId(System.IO.Path.GetFileName(hpf.FileName));
                    libfiles.CPI2Libraries[i].DoctypeId = 1;
                                           FileInfo fileInfo = new FileInfo(hpf.FileName);
                    UDO.UDOFileOperations.RemoteFileInfo ri = new UDO.UDOFileOperations.RemoteFileInfo();
                    System.IO.FileStream stream = new System.IO.FileStream(hpf.FileName, System.IO.FileMode.Open, System.IO.FileAccess.Read);
                                            ri.FileName = System.IO.Path.GetFileName(hpf.FileName);
                    ri.Length = fileInfo.Length;
                    ri.FileByteStream = stream;
                    ClientBOL.CD.FileOperations cdc = new ClientBOL.CD.FileOperations();
                    cdc.UploadFile(ri);
                }
            }
4

2 に答える 2

0

同じエラーメッセージが表示されました。フォルダーのプロパティが [全般] タブで読み取り専用のチェックを外しているかどうかを確認します。セキュリティ タブで、Network Service の書き込み制御を行います。

また

Add MachineName\IIS_IUSRS permission to the shared folder.

これがうまくいくことを願っています。

于 2013-07-11T10:07:44.067 に答える
0

ファイルだけに権限を付与するだけでは不十分です。IIS は、ファイルに至るまでのすべてのディレクトリにアクセスする必要があります。

例:あなたの名前が書かれたダイヤモンドの入った袋が床に置かれているかもしれませんが、その床が施錠された銀行の金庫室の中にある場合、そこに行って拾うことはできません。

于 2012-09-14T04:58:38.843 に答える