1. 在asp.net中aspnet_filter.dll文件和aspnet_isapi.dll文件的作用各是什麼
這個文件是asp.net的處理文件,用於處理asp.net在iis中注冊過擴展名的文件
比如默認的.aspx文件注冊到aspnet_isapi.dll,這樣用戶訪問.aspx文件時,伺服器自動調用aspnet_isapi.dll來處理這個文件
2. 編譯器錯誤消息: ASPNET: 請確保此代碼文件中定義的類與「inherits」特性匹配,並且該類擴展的基類
修改對應的aspx文件,找到開頭的地方,修改成:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="shop_proct_type
aspx.cs" Inherits="shop_proct_type" %>
其中CodeFile=後面的是哪個aspx.cs文件就寫哪個,如實寫。
3. ASP.NET是什麼
ASP.NET是.NET FrameWork的一部分,是一項微軟公司的技術,是一種使嵌入網頁中的腳本可由網際網路伺服器執行的伺服器端腳本技術,它可以在通過HTTP請求文檔時再在Web伺服器上動態創建它們。 指 Active Server Pages(動態伺服器頁面) ,運行於 IIS(Internet Information Server 服務,是Windows開發的Web伺服器)之中的程序 。
………………………………………………
如果對aspnet感興趣,看看一個大專生怎麼自學aspnet到找到工作。
先做個自我介紹,我07年考上一所很爛專科民辦的學校,學的是生物專業,具體的學校名稱我就不說 出來獻丑了。09年我就輟學了,我在那樣的學校,一年學費要1萬多,但是根本沒有人學習,我實在看不 到希望,我就退學了。
退學後我也迷茫,大專都沒有畢業,我真的不知道我能幹什麼,我在糾結著我能做什麼。所以輟學後 我一段時間,我想去找工作,因為我比較沉默寡言,不是很會說話,我不適合去應聘做業務。我想應聘 做技術的,可是處處碰壁。
一次偶然的機會,我才聽到aspnet這個行業。那天我去新華書店,在計算機分類那邊想找本書學習 。後來有個女孩子走過來,問我是不是讀計算機的,有沒有興趣學習aspnet,然後給我介紹了一下 aspnet現在的火熱情況,告訴我學aspnet多麼的有前景,給我了一份傳單,aspnet培訓的廣告。聽了 她的介紹,我心裡癢癢的,確實我很想去學會一門自己的技術,靠自己的雙手吃飯。
回家後,我就上網查了下aspnet,確實是當今比較熱門的行業,也是比較好找工作的,工資也是相 對比較高。我就下決心想學aspnet了。於是我去找aspnet培訓的相關信息,說真的,我也很迷茫,我 不知道培訓是否真的能像他們宣傳的那樣好,所以我就想了解一段時間再做打算。
後來,我在網路知道看到一篇讓我很鼓舞的文章是一個aspnet高手介紹沒有基礎的朋友怎麼自學入 門學aspnet,文章寫的很好,包含了如何學習,該怎麼學習。他提到一個方法就是看視頻,因為看書實 在太枯燥和費解的,很多我們也看不懂。這點我真的很認同,我自己看書往往看不了幾頁。
我在想,為什麼別人都能自學成才,我也可以的!我要相信自己,所以我就想自學,如果實在學不會 我再去培訓。
主意一定,我就去搜索aspnet的視頻,雖然零星找到一些aspnet的視頻,但是都不系統,我是想找 一個能夠告訴我該怎麼學的視頻,一套從入門到精通的視頻,一個比較完整的資料,最好能有老師教, 不懂可以請教的。
後來我又找到一份很好的視頻,是在IT學習聯盟推出的一份視頻《零基礎aspnet就業班》(喜歡《 零基礎aspnet就業班》的可以復制 sina.lt/bsjr 粘貼瀏覽器地址欄按回車鍵即打開)
下面介紹下我的學習流程,希望對和我一樣完全沒有基礎的朋友有所幫助。
收到他們寄過來的光碟後,我就開始學習了,由於我沒有什麼基礎,我就從最簡單的C#語言視頻教程 學起,話說簡單,其實我還是很多不懂的,只要重復多看幾遍,就能看懂。C#語言我差不多學了一個禮 拜,接下來我就學了winform,SQL Server,html/css/javaScript,差不多也就三個禮拜。我每天都在不 停的寫一些簡單的代碼,這樣一月後我基本掌握了aspnet的全部基礎。
接下來開始學習aspnet高級課程,老師幽默風趣而又輕松的課堂教課,使我發現原來學習aspnet並 不是一件很難的事情。之前我把aspnet基礎學得還不錯,到了到了aspnet高級部分,我覺不又不是很 難,可能老師太牛了,他能把復雜的問題講的比較通俗易懂,有些難點的地方我還是連續看了五六次, 把他弄懂。每天下午6點下班後,吃了飯,馬上跑回家。看視頻,買了幾本筆記本。當時,為了編程還花幾百元了台二手的台式電腦,配置一般,但編程是足夠的。一邊看視頻,一邊記筆記,把重點都記下來,還一邊跟著老師敲代碼,為了能盡早學會aspnet。每天都堅持學5-6個小時。經常學到晚上一點多才睡覺。星期六,日不用上班,每天7點多起床,學到晚上11,12點。那段時間特別辛苦,特別累。在學習aspnet的三個多月里,除了吃飯睡覺工作,剩餘的時間都在學習,因為我知道自己的計算機基礎不是很好,也沒有學過什麼計算機,相對於那些科班的人來說我要比他們付出更多的努力。我只能咬緊牙關,堅持下去,我不能放棄,我要完成我的夢想,我要讓我的家人過上好日子。終於三個多月後我把aspnet教程里的內容和項目都學完了,在學項目的過程中我發現項目特別重要,他能把你學過的知識全部聯系起來,能更好的理解你所學的知識。還有學習過程中,動手很重要,要經常跟著老師動手敲,動手吧,跟著做,一行一行的跟著敲,再試著加一些自己的功能,按照自己的思路敲一些代碼,收獲遠比干聽大的多。 如果遇到暫時對於一些思路不能理解的,動手寫,先寫代碼,慢慢你就會懂了。
於是我就到51job瘋狂的投簡歷,因為我學歷的問題,專科沒有畢業,說真的,大公司沒有人會要我,所以我投的都是民營的小公司,我希望自己的努力有所回報。沒有想過幾天過後,就有面試了,但是第一次面試我失敗了,雖然我自認為筆試很好,因為我之前做了准備,但是他們的要求比較嚴格,需要有一年的項目經驗,所以我沒有被選中。
後來陸續面試了幾家公司,終於功夫不負有心人。我終於面試上的,是在閔行的一家民營的企業,公司規模比較小,我的職務是aspnet開發程序員,但我也比較滿足,開的工資是3500一個月,雖然我知道在上海3500隻能過溫飽的生活,但是我想我足夠了。我至少不用每天都要靠父母養,我自己也能養活自己的。我想只要我繼續努力,我工資一定會翻倍的。
把本文寫出來,希望能讓和我一樣的沒有基礎的朋友有信心,其實我們沒有必要自卑,我們不比別人笨,只要我們肯努力,我們一樣會成功。
…………………………………………
4. 在asp.net中的.sln文件是干什麼的怎麼讀懂sln文件中的內容呀
您好,sln:在開發環境中使用的解決方案文件。它將一個或多個項目的所有元素組織到單個的解決方案中。此文件存儲在父項目目錄中.解決方案文件,他是一個或多個.proj(項目)的集合。
一,新建網站是沒有這個sln文件的,如果你想有這個文件就要另存為...,在解決方案資源管理器裡面選中解決方案,然後在VS的文件選項裡面選擇XX.sln另存為...就可以了,winform項目新建就有的,不用另存為
二,這個文件就是解決方案的配置文件,小項目用處不大,主要是大項目...
三,還是因為這個就是解決方案的配置文件,你一雙擊就打開了這個解決方案下的所有項目...(如果你雙擊項目文件就能打開一個項目下的所有文件)。
Solution Explorer points to the CSolution object indicating that it is part of the T:Microsoft.VisualStudio.Shell.Interop.IVsHierarchy.
When the solution is opened in Visual Studio, an entry is made for the solution file (Solution1.sln) in the running document table (RDT). The solution file contains information persisted for the solution which includes Project1 as shown in Solution Explorer. (Information relating to the specific project items and the project itself are contained in Project1's text-based project file. If an element of the project is opened for editing, there is an entry for the project file in the RDT.)
The context menu displayed when the user right-clicks the solution node contains an entry for Solution Notes (not shown in the diagram). From this menu, the user can select either Add New Solution Note or View Solution Notes. Selecting one of these options opens the Solution Notes window. The Solution Notes window contains the following three links:
Note Name—The name of the note. The note can be renamed or deleted in the Solution Notes window by right-clicking the name field, or renamed in theProperties window.
Issue—This field was added programmatically by the implementation in the sample and can be set to TRUE (to indicate that there are issues in the solution that need to be addressed) or False.
Shared—If this field is set to TRUE, the note can be viewed by other users and is stored with the Note Name as a name-value pair in the .sln file. If it is set to false, the note is not shared with other users and the contents of the note are stored with other private user options in the .suo file.
Selecting one of the notes in the Solution Notes window causes the properties for that note to be displayed in the Properties window. The properties shown in the three fields of the Solution Notes window can be changed in the Properties window. In addition to the three fields described above, the Properties window also contains the size of the note consisting of the number of characters in the note.
The class CNoteToolWin implements the Solution Notes window. It is contained within the class CSlnExtPkg that is the class for the Solution Extender Window. When Add New Solution Note or View Solution Notes is selected from the solution menu, a call is made to CSlnExtPkg to open the Solution Notes window.
At the same time, a call is made to CSlnNote. This opens the standard text editor to view the text of the note, or to allow a new note to be written, by calling the CreateDocumentWindow method and passing in the MKDocumentString for the document to be loaded into the window. By specifying theAltDocData flag (CDW_fAltDocData) in this call instead of RDTDocData, you indicate to the environment that you are loading a subset of the RDTDocDatadocument into the text buffer.
This is important because the entry in the RDT is for the entire solution file. If RDTDocData is called, the .sln file is loaded into the editor rather than the subset of the solution that is the note. This results in an error condition because the same document (in this case the solution file) cannot have two entries in the RDT, indicating that the same document was opened in two different editors.
5. aspnet_client 的作用以及存儲位置
在虛擬主機的 wwwroot 目錄下您會發現有一個名為 aspnet_client 的文件夾,該文件夾中含有集成了 ASP.NET 的「SmartNavigation」功能的 javascript。如果啟用 SmartNavigation,網頁設計人員就可以在頁面以及其他內容之間保持滾動條和元素焦點的位置。
目錄 aspnet_client 是虛擬根 Web 應用程序目錄,該目錄是當您安裝 .NET Framework SDK 或 Visual Studio .NET 時在您的計算機上創建的。此文件不佔用戶空間,請用戶在使用網站空間的時候不要刪除該文件夾。
例如,隨 ASP.NET 附帶的腳本文件位於以下位置。
d:\home\ftp用戶名/wwwroot/aspnet_client/system_web/<版本編號>/文件
如果安裝有 SDK 的多個版本,您將在 aspnet_client/system_web 下看到多個子目錄。因為控制項庫與腳本文件的特定版本相關聯,所以部署模式允許控制項庫的不同版本並行運行。 出現了「aspnet_client」這個文件夾,是干什麼的?
這個是文件的路徑下還有文件!下面的完整路徑:
aspnet_client\system_web\1_1_4322
裡面還有三個文件:SmartNav.htm,smartnav.js,webuivalidation.js!
作用是:安裝了.net框架之後,就會在網站目錄下出現這樣的文件夾.用以支持.net環境.1_1_4322表示你的.net framework 的版本為 1.1.4322,裡面的3個文件用於為.net驗證控制項提供腳本支持伺服器裡面裝了.net後,會在伺服器上每個網站的目錄裡面增加這個文件夾的 在生成虛擬站點的時候會自動在根下生成一個名字為aspnet_client的文件夾,你看看是不是這個文件夾沒有了?
解決辦法重新建一個獨立站點,把生成的aspnet_client文件夾復制到這個站點的跟下。
首先確定你安裝了iis
然後從命令行進入文件夾C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\
盤符,系統文件夾,版本號可能不一樣,看你自己的機子,版本號選擇最高的那個文件夾
運行命令aspnet_regiis.exe -i
安裝完畢即可使用vs打開
一點資料:
aspnet_regiis命令詳解.
用法:
aspnet_regiis.exe[-i[r][-enable]|-u[a]|-r|-s[n]|-k[n]|-lv|-lk|-c|-e[a]|-?]
-i-安裝ASP.NET的此版本,並更新IIS元資料庫根處的
腳本映射和根以下的所有
腳本映射。現有的低版本腳本映射
升級到此版本。
-ir-安裝ASP.NET的此版本,僅注冊。不
更新IIS中的腳本映射。
-enable-帶-i或-ir指定-enable時,還將
在IIS安全控制台(IIS6.0或更高版本)中啟用ASP.NET。
-s-在指定的路徑以遞歸方式安裝此版本
的腳本映射。現有的低版本腳本映射
升級到此版本。
例如aspnet_regiis.exe-sW3SVC/1/ROOT/SampleApp1
-sn-在指定的路徑以非遞歸方式安裝此版本的
腳本映射。現有的低版本腳本映射
升級到此版本。
-r-為IIS元資料庫根位置的此版本
以及根以下的所有腳本映射安裝腳本映射。不論當前版本是什麼,
所有現有的腳本映射都
更改為此版本。
-u-卸載ASP.NET的此版本。到此版本的
現有腳本映射重新映射到此計算機上安裝的
其餘的最高ASP.NET版本。
-ua-卸載計算機上的所有ASP.NET版本
-k-從指定的路徑中以遞歸方式移除到任何ASP.NET版本的所有
腳本映射。
例如aspnet_regiis.exe-kW3SVC/1/ROOT/SampleApp1
-kn-從指定的路徑中以非遞歸方式移除到任何ASP.NET版本的所有
腳本映射。
-lv-列出計算機上安裝的所有
ASP.NET版本(包括狀態和安裝路徑)。
Status:Valid[(Root)]|Invalid
-lk-列出包含ASP.NET腳本映射的所有IIS元資料庫項的所有路徑
(連同版本一起)。不顯示從父項
繼承ASP.NET腳本映射的項。
-c-將客戶端腳本的此版本安裝到
每個IIS站點目錄的aspnet_client子目錄中。
-e-從每個IIS站點目錄的
aspnet_client子目錄中
移除客戶端腳本的此版本。
-ea-從每個IIS站點目錄的aspnet_client子目錄中
移除客戶端腳本的所有版本。
-?-列印此幫助文本。
example:
當系統新建一個asp.netweb應用程序的時候,提示錯誤信息如下:
"VisualStudio.NET已檢測到指定的Web伺服器運行的不是ASP.NET版本,你將無法運行ASP.NET應用程序或服務。"
可以嘗試運行
aspnet_regiis-i
aspnet_regiis-r
兩個命令來安裝asp.net服務管理器.
如果還是不行的話,再嘗試一下下面的操作:
1、先確定是不是1.1
2、把"IP地址"設成全部未分配
3、在IE連接設置中把本地地址不使用代理伺服器那裡打上勾
6. asp.net的配置文件web.config怎麼解密
使用「」形式來加密
test.aspx程序文件基本如上,
把
section.SectionInformation.ProtectSection(「」);
改成
section.SectionInformation.ProtectSection(「」);
但這個時候你訪問網站的時候很有可能會出現
說明:
在處理向該請求提供服務所需的配置文件時出錯。請檢查下面的特定錯誤詳細信息並適當地修改配置文件。
分析器錯誤信息: 未能使用提供程序「」進行解密。
提供程序返回錯誤信息為: 打不開 RSA 密鑰容器。
這樣的錯誤,解決方法是:
進dos運行:aspnet_regiis -pa 「NetFrameworkConfigurationKey」
「NT AUTHORITY\NETWORK SERVICE」
如果運行出錯,需要把目錄 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
放入環境變數path中。此時就可以成功訪問網站了。
同樣可以通過命令行來實現「」加密
注意:你也可以不運行 aspnet_regiis -pa 「NetFrameworkConfigurationKey」
「NT AUTHORITY\NETWORK SERVICE」命令來注冊默認的
的RSA 密鑰容器
方法如下:
1)創建一個可導出的rsa密鑰容器,命名為Key
aspnet_regiis -pc 「Key」 -exp
2)在你要加密的信息前面指定密鑰容器,如:
<configProtectedData><providers><clear /><add name=」KeyProvider」 type=」System.Configuration., System.Configuration, Version=2.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL」 keyContainerName=」Key」 useMachineContainer=」true」/></providers></configProtectedData><connectionStrings><add name=」SQLConnString」 connectionString=」Data Source=yourIP;Initial Catalog=test;User Id=yourID;Password=yourPassword;」providerName=」System.Data.SqlClient」 /></connectionStrings>
並且確保在configuration節的xmlns屬性有如下值:
3)對配置文件進行加密
aspnet_regiis -pef 「connectionStrings」 「E:\project\Test」 -prov 「KeyProvider」
參數分別為:需要加密的配置節、項目所在目錄的物理路徑、加密所使用的密鑰容器名稱
再看web.config文件,就會發現connectionStrings節已經被加密了,但
是運行程序會發現程序仍然可以正確訪問資料庫。
此時,只需運行:
aspnet_regiis -pdf 「connectionStrings」 「E:\project\Test」
就可以對web.config文件進行解密。
(注意,如果還是有錯誤,那可能是您沒有給生成的密匙文件足夠的許可權,
去到C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys
目錄下,找到剛生成的密匙文件,把network service用戶的讀取許可權賦予給它,就可以了,
直接用命令的話也可以:命令如下 aspnet_regiis -pa 「Key」 「NT AUTHORITY\NETWORK SERVICE」 ,
可能需要重新啟動iis
4)把密鑰容器導出為xml文件
aspnet_regiis -px 「Key」 「e:\Key.xml」
這個命令只導出公鑰,因此以後只能用於加密,而無法解密。
aspnet_regiis -px 「Key」 「e:\Keys.xml」 -pri
這個則連私鑰一起導出了,所以我們要用這個。
5)把密鑰容器刪除
aspnet_regiis -pz 「Key」
刪除後再運行程序,會提示出錯:
分析器錯誤信息: 未能使用提供程序「KeyProvider」進行解密。
提供程序返回錯誤信息為: 打不開 RSA 密鑰容器。
同理可以證明,在任何一台未安裝正確的密鑰容器Key的機器上,
程序都無法對connectionStrings節進行解密,因此也就無法正常運行。
6)導入key.xml文件
aspnet_regiis -pi 「Key」 「e:\Keys.xml」
此時,再運行程序會發現又可以解密了。證明加密與解密機制運行正常。
最後說一下這個機制所提供的安全性保障可以運用在什麼方面:
對winform程序的app.config進行加密實際意義並不大,因為無論如何,
客戶機都可以通過運行aspnet_regiis -pdf 來對配置文件進行解密,從而暴露敏感信息。
對於web.config進行加密的意義也僅限於,當web.config文件不小心泄露時,
不會同時泄露敏感信息,如果惡意攻擊者已經取得了在伺服器上運行程序的許可權,
那麼同app.config一樣,可以很容易通過通過運行aspnet_regiis -pdf 獲取明文了。
還有,通過aspnet_regiis -pa 「Key」 「NT AUTHORITY\NETWORK SERVICE」
控制對不同用戶對密鑰容器的訪問許可權,應該還可以進一步獲取一些安全性,
比如可以控制某些用戶即使登錄到伺服器上,也無法用aspnet_regiis -pdf對配置文件進行解密。
7. 用aspnet
在 模型中 vs 已經完全脫離了編譯而成為了一個徹底的ide 算是一個不小的改動 其中更是取消了有關Web Application的概念 使得習慣了vs 的人剛開始的時候會有一些摸不著頭腦 下面簡單說一下我在使用過程中自己總結的 算是一點經驗
新建web工程並且位置是文件系統的時候 vs 只是幫你建好了一個sln文件 這個東西只是指引m *** uild 如何進行編譯的 過程是 ide 調用 m *** uild m *** uild解析sln文件 m *** uild調用aspnet_piler exe進行網站的編譯 所以aspnet_piler exe只是負責進行網站的編譯的
預編譯的概念在framework 裡面就存在了 vs 中的預編譯指的是將頁面對應的cs/vb文件與resx文件編譯後統一集成到一個dll中放到bin目錄下 將aspx文件直接拷貝過去 這樣做會留下隱患 因為aspx文件就直接暴露在最後的發行包中 如果完全是codeb behind模型還好 只能改改界面 如果採用了頁面上的來生成頁面 源代碼就暴露了 針對這些問題 vs 採用了一種新的模式
請參看ASP NET 編譯工具 (Aspnet_piler exe) 這篇文章了解對各種文件的處理方式
IDE發布
vs 中選擇 生成 〉發布網站 在對話框中的操作將映射到aspnet_piler exe的參數中 可更新的發布對應 u 其他選項類似 請參考上面的文章了解
注意 發布時將忽略nfig中的debug?問騁簧晌薜魘孕畔⒌奈募?
手工編譯
簡單說來 如果是無更新發布模式編譯 appcode下面的class編譯成dll放在bin下 頁面內容清空位置不變作佔位用 同時頁面被編譯成一個隨機名稱的dll 增加一個同piled文件到bin目錄下 內容大概如下
<?xml version= encoding= utf ?>
<preserve resultType= virtualPath= /Forum/AdminList aspx hash= c filehash= f d c flags= assembly= App_Web_hmrycg w type= ASP forum_adminlist_aspx >
<filedeps>
<filedep name= /Controls/footer ascx />
<filedep name= /Controls/header ascx />
<filedep name= /Forum/AdminList aspx />
<filedep name= /Forum/AdminList aspx cs />
<filedep name= /Forum/menu ascx />
<filedep name= /Forum/menu ascx cs />
</filedeps>
</preserve>
裡面只是列出了頁面上的customcontrol 這里已經完成了和masterfile的映射 這樣最大限度的保護了頁面的敏感信息 發布過的網站中只能看見一堆文件名了 可更新的發布模式與vs 類似 頁面就直接拷貝過來不予編譯了
講了一堆原理 下面說一下aspnet_piler exe的調用方法 這是我使用的例子
我的開發目錄是這樣的
Project/
library/
devroot/
pubroot/
proj sln
使用的命令如下
aspnet_piler v / p devroot f pubroot
分析
v / 指明了iis的虛擬目錄
p devroot 表示代碼實際位置
pubroot 指明了要發布的位置
f 表示強制改寫目標位置
lishixin/Article/program/net/201311/13677
8. aspnet_wp.exe
放心吧,這是一個系統進程,跟病毒沒關系的。
ASPNET_WP.exe是涉及Microsoft asp.net技術的程序運行所必須的程序。這不是純粹的系統程序,但是一般不要終止它,不然有時會出現一些不可預料的問題。
9. 在VS2005中編輯代碼報錯編譯器錯誤信息: ASPNET: 請確保此代碼文件中定義的類與「inherits」屬性匹配, 行
inherit繼承的命名空間與cs的命名空間不匹配,參照同級文件夾下的其他文件後台代碼的命名空間