當您轉到ASP網站(webforms或MVC)的根目錄時,Web服務器如何知道要加載哪個.aspx或.cshtml文件以及bin/
目錄中的哪個dll包含要執行的代碼?它如何匹配這兩個?ASP網站如何將一個DLL與網頁匹配?
回答
我不知道你是在尋找一個非常技術性的答案,或者是一個簡單的概述。所以,這裏有一個簡單概述。
默認文檔
當你去到一個ASP網站
ASP,HTML,PHP或任何技術的使用,Web服務器知道默認的文件搜索和顯示的根未提供文檔時,例如,在微軟的IIS服務器,默認的文件是:
這是Apache服務器一樣,有它告訴服務器「如果你沒有一個文件名,用這一個」設置的設置,這個人是在.htaccess
文件中找到,並具有:
DirectoryIndex index.php index.html index.htm default.html default.htm home.html
在ASP.NET MVC,你與路由表的工作,它是在該路線中提到的Global.asax
文件,無論是通過直接指定航線或調用外部文件(類),以及常見的路線是:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
如果這表明,如果沒有提供路線,它將與/Home/Index
相同。
大會
關於DLL
S部,它是所有關於你的第一個文件...
.NET網站是預編譯,並暴露了他們的命名空間和屬性,你將有一個ASP.NET Web表單,像這樣在第一行代碼:
<%@ Page Title="Home Page" Language="C#"
MasterPageFile="~/Site.Master"
AutoEventWireup="true"
CodeBehind="Default.aspx.cs"
Inherits="WebApplication3._Default" %>
這告訴服務器來運行WebApplication3._Default
內Default.aspx.cs
,並從那裏,它將附加任何所需的組件與r取消代碼。
+1此外,用戶輸入的url與服務器上的處理方式之間的橋樑是Handler Mappings。對於.aspx和.cshtml(或任何擴展名),HttpModule會爲尋找合適的.dll或文件執行並提供給瀏覽器而付出沉重的代價。 – mellamokb
@mellamokb我不知道他是否想要技術概述,所以我簡單地說了正常的部分:)如果你認爲他想要,可以隨意用更多的技術細節回答它,如果正確,我會贊成:) – balexandre
非常豐富!那麼它如何從Default.aspx.cs獲得包含Default.aspx.cs的編譯結果的程序集呢?作爲@mellamokb說, – thecoop
- 1. 將網站頁面與智能手機相匹配
- 2. 從一個網頁/網站
- 3. ASP .NET網站,輸入DLL-S
- 4. 如何將HTML網站模板轉換爲ASP MVC網站
- 5. 如何將asp網站轉換爲wordpress?
- 6. 如何將當前頁面網址與導航欄相匹配?
- 7. 與ASP網站通信
- 8. PCRE模式與網站URL匹配
- 9. 如何將多個Plone網站合併爲一個網站?
- 10. 如何將一個ASP .NET 3.5網站託管到萬維網。像www.mynewwebsite.com
- 11. 將網站嵌入另一個網站
- 12. 網站模式匹配
- 13. php網站的網址匹配問題
- 14. 建立一個「單頁」網站與網頁之間的動畫
- 15. 如何匹配2個網址與一個正則表達式
- 16. 如何在ASP網頁
- 17. ASP網站的根網址
- 18. 如何將龐大的ASP經典網站與.Net
- 19. 無法從一個asp網站
- 20. 在EasyCgi上託管一個asp網站
- 21. 設置一個實時的ASP網站
- 22. ASP MVC 5 - 一個網站(項目)
- 23. 通過網頁訪問一個網站
- 24. 如何將網頁的結果嵌入另一個網站的另一個網頁?
- 25. 如何添加到網站源代碼,如果它匹配的某一頁?
- 26. 我想將域名與網站URL相匹配
- 27. 如何從一個網站的網址
- 28. 在ASP .NET網站
- 29. 將圖案與網址匹配
- 30. 如何將Facebook評論從一個網站遷移到另一個網站?
對於MVC,http://msdn.microsoft.com/en-us/library/system.web.routing.routetable.aspx可能會給你一些信息 –
它是如何執行代碼來創建首先,從沒有組裝引用的文本Global.asax文件路由? – thecoop
爲什麼有人低估了這個問題? – Anonymous