2012-03-12 7 views
0

ユーザーがファイルをアップロードおよびダウンロードできるアプリケーションがあります。アップロードのコードは次のようになります。 [表示] IIS 7およびVisual Studio 2010でファイルをダウンロードするときに404.0エラーが発生する

<input type="file" name="file" id="file" /> 

<p /> 

<input type="submit" value="Upload" style="font-size:1em" /> 
</form> 

[コントローラー]

public ActionResult Index(string id, FormCollection formCollection, HttpPostedFileBase file, int? FileID) 

string filePath = "c:\\sandbox\\" + id + "_" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + extension; 
file.SaveAs(filePath); 

アップロードが正常に動作します。ただし、「Sandbox」にアップロードしたファイルをダウンロードしようとすると、404エラーが表示されます。

[表示]

<a href="/AdjClaim/Download/@f.ID">@f.Name </a> 

[コントローラー]

return File(a.FilePath, a.ContentType, a.Name); //File path is c:\Sandbox\filename 

アプリケーションが私のdevのボックスに完璧に動作しますが、IIS 7.5のボックスに移植されたときに失敗します。ここでダウンロードコードです。どんな考えも非常に高く評価されます。

ありがとうございます。

+0

... a.ContentTypeとa.Nameの値は何ですか? – Mike

+0

コンテンツタイプはapplication/pdfです。名前はTest.pdfです。 –

+0

IIS 7.5ボックスでルートが実行されていることを確認できますか?戻り値の型をFilePathResultからActionResultに変更して、通常のページであるかのようにビューを返すと、正常に動作しますか? – Mike

答えて

0

問題が見つかりました!

devボックスでテストする場合、コントローラ/アクションはルートから直接離れています。ただし、IISボックスに展開する場合、Webサイトはサブフォルダ(xxxxxxx_deploy)に配置されます。コントローラのアクションへのリンクにはIISサブフォルダは含まれていないため、ローカルボックスで動作します。

マイクありがとうございました!

関連する問題