2016-11-15 75 views
-1

我有具有以下默認路由映射的MVC應用程序:找不到帳號/授權時MVC Web應用程序

routes.MapRoute(
    name: "Default", 
    url: "{controller}/{action}/{id}", 
    defaults: new {controller = "Startup", action = "Index", id = UrlParameter.Optional } 
); 

只要我部署這個網站我的IIS服務器的根目錄(C:\的Inetpub \ wwwroot)並在IIS中創建一個新的網站,一切正常。

但是,如果我在wwwroot文件夾結構中創建一個目錄,那麼在那裏部署相同的文件,而不是創建網站,我在DefaultWebSite下創建一個應用程序並將其指向文件所在的子文件夾(c:\ inetpub \ wwwroot的\ MyApplication的);當我啓動,以前被配置爲一個網站的WebApplication的,我得到的錯誤「您正在尋找已被刪除的資源,有其名稱更改,或者暫時不可用。」

請求的URL: http://localhost:80/Account/Authorize?client_id=web&response_type=token&state=

物理路徑:C:\的Inetpub \ wwwroot的\帳戶\授權

所以這樣看來,我的路由需要進行調整,以反映該應用程序的位置在wwwroot之下的子目錄,而不是wwwroot中它在哪裏看。

應該採取什麼規定來確保MVC Web「應用程序」在父網站下正常運行?

=================================

修訂意見

考慮後發表評論時,我發現我的問題的幾個細節可能值得一提。

  1. 我的應用程序被重定向到所請求的URL我張貼在默認情況下,我沒有這樣做。換句話說,如果我打開IIS,在DefaultWebSite下右鍵單擊我的應用程序並選擇瀏覽;我收到了錯誤的網址。我從來沒有記得有與ASP.NET應用程序這個問題提示我「路由」問題

  2. 如果我更改URL,這樣應用程序名稱之前的帳戶/授權路上,我再次得到重定向到http://localhost/#access_token= & token_type =承載& expires_in = 1209600,並收到右上角顯示「開始執行」的空白內容頁面。頁面的標題說CORS檢測腳本。向我建議我的應用程序可能位於默認網站的另一個域中?需要一些明確這一點,雖然。

  3. 如果我再先,落在我的應用程序名稱的CORS檢測腳本頁面上的網址,我的網頁加載成功,我會期望

========= =======================================

所以再次,我相信有一些調整需要我的應用程序內的某個地方(可能在路由配置中)來補償默認生成的不正確的URL。

因爲如果我將應用程序設置爲所有內容位於根目錄而不是子目錄的網站,則一切正常。

當然當你創建你的網站的子文件夾的應用程序某人以前

回答

1

看到了這一點,你只能有效改變運行你的應用程序(w3p.exe)過程的範圍。你仍然需要把應用程序名稱的網址,例如:

http://localhost:80/MyApplication/Account/Authorize?etc

+0

我的應用程序被重定向到URL我張貼的問題,我沒有這樣做。但是,就你而言,如果我按照你的建議更改了URL,那麼我將被重定向到http:// localhost /#access_token = &token_type = bearer&expires_in = 1209600,並收到一個空白內容頁面,顯示「開始執行」右上角。頁面的標題說CORS檢測腳本。我正在用新信息更新我的問題。謝謝 – Mark