2014-03-13 76 views
0

所以我有一個ASP.NET頁面MVC4在IIS工作:StaticFileHandler不與IIS 7.5,Windows 7中,ASP.NET MVC4,VS2012工作在所有

iis screenshot

唯一的問題是靜態內容不提供早餐...(CSS,JS,...文件)

這是我已經做了檢查清單:

  1. 在「啓用/啓用「靜」組件在Cont。中禁用Windows功能「對話框滾動面板,在IIS樹節點下。
  2. 有一個<添加路徑= 「*。CSS」 動詞= 「GET」 類型= 「System.Web.StaticFileHandler」 我的web.config的<的System.Web > < HttpHandlers的>標籤內/ >。
  3. 有一個<添加名稱= 「CSS」 路徑= 「*。CSS」 動詞= 「GET」 類型= 「System.Web.StaticFileHandler」 前提= 「富」/ >的<system.webServer> <處理>內我的web.config標籤(foo是'integratedMode'或'ManagedHandler')。
  4. 向我的用戶添加「Impersonate a Client AfterAuthentication」權限(http://support.microsoft.com/kb/821546)。
  5. 也嘗試直接在對話框「模塊映射」中添加IIS中的條目。事實上@法莉告訴我,這是沒有必要,只要我看到了「*」映射,這是這一個:

Static File mapping that is already there

它仍然不提供的F ** g文件(404)。我還有什麼遺漏?

在日誌文件(C:\inetpub\logs\LogFiles\W3SVC2\u_ex140313.log)我可以看到:

2014-03-13 18:21:09 192.168.0.161 GET /Content/Site.css - 80 - 192.168.0.150 Mozilla/5.0+(X11;+Ubuntu;+Linux+x86_64;+rv:26.0)+Gecko/20100101+Firefox/26.0 404 0 0 15 
+0

在IIS(服務器,網站,應用)的任何級別,你應該能夠看到IIS靜態文件模塊列爲Handler Mappings的最後一項,它監視*的路徑,處理程序是'StatusFileModule,DefaultDocumentModule,DirectoryListingModule'。在這種情況下,我認爲你不需要另一個處理程序。同時,當「它仍然沒有服務」時,IIS日誌文件中記錄的狀態碼是什麼? –

+0

當我嘗試使用瀏覽器訪問文件時,它會顯示404。 IIS日誌文件在哪裏? – knocte

+1

404是一個大家族,所以你應該從http://support.microsoft.com/kb/943891 –

回答

0

好吧,這是一個權限問題!

首先,我的ASP.NET網站的工作,我不得不這樣做在IIS管理應用程序,一些天前:

  • 點擊你的網站的節點上。
  • 在右側面板中,單擊'基本配置...'鏈接。
  • 單擊按鈕「連接爲...」。
  • 選擇「特定用戶」,然後選擇具有管理權限的用戶。

(我提到這一點,萬一上面有我下面要做的事情有一定影響。)

現在,爲了解決我的問題,我不得不改變我的文件夾的權限(其中我把我的網站寫在磁盤上:C:\Users\knocte\Documents\Visual Studio 2012\Projects\SolutionFoo\ProjectFoo)。

  • 轉到C:\Users\knocte\Documents\Visual Studio 2012\Projects\SolutionFoo
  • 右鍵單擊 'ProjectFoo' 文件夾 - >屬性 - >安全。
  • 單擊「編輯...」按鈕。
  • 單擊「添加...」按鈕。
  • 編寫「IIS_IUSRS」,點擊「檢查名稱」。
  • 點擊「接受」很多次。

在瀏覽器中刷新頁面,現在靜態文件應該可以工作。

(您可能還會發現與Temporary ASP.NET Files系統文件夾的麻煩,在這種情況下看here。)