編譯aspnet
『壹』 ASP與aspnet有什麼不同,區別在哪裡
不是的……完全不一樣的程序……你都使用過就可以了……應該說ASP是一個不規范的,臨時性的語言,不是說ASP功能不強,而是和ASP。NET比較一下就知道了。.NET是ASP的加強,強化了程序向的功能,也就是說,ASP。NET是一個單獨的程序語言,而ASP只是一種強化網頁功能的代碼,我說的比較籠統,因為這是我兩個都使用下來的一個感覺,你自己去使用一下就知道了。asp.net要比ASP規范和正式很多很多。
如果說ASP是在IE里瀏覽的網頁的話
asp.net就是在IE里瀏覽的程序了。
『貳』 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隻能過溫飽的生活,但是我想我足夠了。我至少不用每天都要靠父母養,我自己也能養活自己的。我想只要我繼續努力,我工資一定會翻倍的。
把本文寫出來,希望能讓和我一樣的沒有基礎的朋友有信心,其實我們沒有必要自卑,我們不比別人笨,只要我們肯努力,我們一樣會成功。
…………………………………………
『叄』 ASP.NET常見錯誤大全
檢測到有潛在危險的 Request Form 值
原因:
( )在提交數據的頁面或webconfig中沒有對validateRequest的屬性進行正確的設置
( )HTML裡面寫了轎爛旅兩個<form>引起
解決:
方案一 在 aspx文件頭中加入這句 <%@ Page validateRequest= false %>
方案二 修改nfig文件:
<configuration>
<system web>
<pages validateRequest= false />
</system web>
</configuration>
因為validateRequest默認值為true 只要設為false即可
在沒有任何數據時進行無效的讀取嘗試 解決辦法
原因
所返回的sqldatareader無數據記錄 但沒有作記錄判斷力處理 返回的是空值
加上判斷即可 if (reader read()) { TextName Text =
reader[ FieldName ] ToString(); }
數據為空 不能對空值調用此方法或屬性
原因:
若對象是null 那麼調用對象的方法例如ToString()肯定出錯一般是數歷宴據庫欄位的值為空
在grideview等閉凳數據控制項常出現
解決:因此建議作NULL處理
閱讀器關閉時 FieldCount 的嘗試無效
原因:
使用了SqlDataReader來綁定數據後 將connection對象作了Close()處理
類似
public SqlDataReader GetSomething()
{
conn open();
SqlDataReader reader =
sqlcmd ExcecutReader(CommandBehavior CloseConnection));
conn close();// occur error here
return reader;
}
在綁定的時候調用了這個方法來指定數據源 如果使用這個方法則需要在調用函數中關閉Re
ader這樣conn就可以自動關閉
如果是使用的是SqlDataAdapter和DataSet那麼請去掉顯式關閉conn的調用 或者在finally
中調用之
未能映射路徑
原因:可能是在webconfig中的路徑配置不正確所致 在FCKEditor的配置中這種問題比較突出
<add key= FCKeditor:BasePath value= ~/admin/fckeditor/ />
<add key= FCKeditor:UserFilesPath value= /UserFiles/ />
Unreachable code detected
原因
一般是在異常處理理或返回值時使用了 throw 或return 可能是其位置放在前面 造成後面的代碼執行到了
解決
把相關的異常拋出處理的語句(throw)或return 的語句放到代理執行的最後一行
索引超出范圍 必須為非負值並小於集合大小
原因
( ) 沒有設置DATAKEYFIELD設為資料庫中相對應的唯一欄位(一般是主鍵)
( ) DataGrid Columns > e Item Cells
解決
( ) 設置datakeyfield
( ) 加入判斷語句unt (datagrid可以是其它相類似的伺服器控制項)
數據源不支持伺服器端的數據分頁
解決方法:
不要使用DataReader 改成使用DataSet 或使用自定義分頁形式 不採用提供的分頁功能
OleDbDataAdapter da = new OleDbDataAdapter(sql connection);
DataSet ds = new DataSet();
da Fill(ds News );
GridView DataSource = ds ;
GridView DataBind();
對象名 ***** 無效
原因:當前使用的資料庫中沒有*****這張表
解決: 查看是否程序中是否寫錯了所調用的表的名稱或看一下SQL資料庫中是否存在你所調用的表
在建立與伺服器的連接時出錯 在連接到 SQL Server 時 在默認的設置下 SQL
Server 不允許進行遠程連接可能會導致此失敗 (provider: 命名管道提供程序
error: 無法打開到 SQL Server 的連接)
solution: 主機上需要用固定的IP地址或伺服器地址
SqlDateTime 溢出 必須介於 / / : : AM 和 / / : : PM
之間
出現這種問題``多半是因為你更新資料庫時``datetime欄位值為空``默認插入 年 月
日``造成datetime類型溢出
出現 表示 屬性 此處應為 方法
原因:
VB與c#的方法 屬性的格式有所不一樣導致
可能是在design中綁定數據的語法出現錯誤 解決: 記住屬性用[] 方法用()
記住綁定數據的正確語法(有以下幾種方式::<%Container DataItem( 欄位名 )%> <%
#Eval( 欄位名 )%> <%Bind( 欄位名 )%>等)
未能從程序集 DAL Version= Culture=neutral
PublicKeyToken=null 中載入類型 DAL SqlHelper
原因:修改了其他層後未能重新編譯成dll
解決:編譯一下(Rebuild)
為過程或函數 指定的參數太多
solution:調用存儲過程與定義的存儲過程所用的參數數量或所執行的SQL語句中所傳入的參
數個數不一致(這是個SQL的錯誤)
解決方案:仔細檢查在存儲過程中所設定的參數變數 與實際輸入的參數值是否一一對應
無法啟動調試 綁定句柄無效
原因:系統的Terminal Services沒有開啟
Unable to debugging on the web server Debug failed because integrated windows authentication is not enable
解決方法:
打開vs >工具(Tools) >選項(Option) >調試(debugging) >編輯並繼續(Edit and Continue) >全部打勾
Automation 操作中文件名或類名未找到: RegExp
解決方法:regsvr vbscript dll
System NullReferenceException: 未將對象引用設置到對象的實例
原因:
( )所設置的變數為空值或沒有取到值 一般出現在傳遞參數的時候出現這個問題 也會在使用datagrid或gridview或datalist等數據控制項時出現
( )控制項名稱與codebehind裡面的沒有對應
( )未用new初始化對象
( )在程序中所引用的控制項不存在
解決方法:
( )使用try catch finally捕捉錯誤 或直接用response write()輸出所取的變數值
( )查看代碼中是否存在未初始化的變數
錯誤 文件被數字簽名策略拒絕(安裝vs sp 時)解決方法:
( ) 單擊 開始 單擊 運行 鍵入 control admintools 然後單擊 確定
( ) 雙擊 本地安全策略
( ) 單擊 軟體限制策略 (注意 如果未列出軟體限制 請右擊 軟體限制策略 然後單擊 新建策略 )
( ) 在 對象類型 下 雙擊 強制
( ) 單擊 除本地管理員以外的所有用戶 然後單擊 確定
( ) 重新啟動計算機
微軟說明
vs 不能從源文件模式切換到視圖模式
解決方法:dos下運行下 devenv /resetskippkgs (win+r cmd)
Validation of viewstate MAC failed
解決辦法:頁面的頂部page加 EnableViewState= False EnableViewStateMac = False 來解決這個問題
Automation server can t create object (Automation 伺服器不能創建)
解決辦法:運行: Regsvr scrrun dll 即可
包載入失敗
未能正確載入包 Visual Web Developer Trident Designer Package (GUID =
{ AE E C D E F A AEFF }
解決方法:
設置系統變數 VsLogActivity=
在%APPDATA%MicrosoftVisualStudio 文件夾下創建文件ActivityLog xml
Error
Microsoft Visual Studio
LoadLibrary failed for package [Visual Web Developer Trident Designer Package]
{ AE E B C D E F A AEFF }
e
c:Program FilesMicrosoft Visual Studio Common Packages ridsn dll
從 WINNTMicroSoft NETFrameworkv xxx 復制文件gdiplus dll 到 Program FilesVisual Studio Common Packages文件夾下
在命令行下運行命令 devenv /resetskippkgs
Error spawning cmd exe
解決方案:把cmd exe 拷貝到VS安裝目錄下的VC/BIN目錄里 可以解決問題
嘗試讀取或寫入受保護的內存
解決:硬體有問題 一般內存有問題
無法在證書存儲區中找到清單簽名證書
解決方法:用記事本打開項目的 csproj文件 刪除類似
該項目中不存在目標 ResolveKeySource
原因:這個問題很罕見 查詢國外相關資料後 大致說是由於部署的不是一個標準的solution 需要在VS自帶的命令提示中運行下面這個東西恢復
解決方法:
( ) 將下列代碼存為XML文件 命名為TestBuild xml
<Project DefaultTargets= Build xmlns= >
<PropertyGroup>
<TargetConnectionString>Data Source= sql % BUser ID=SqlUser% BPooling=False% BPassword=X</TargetConnectionString>
</PropertyGroup>
<ItemGroup>
<DatabaseProject Include= Database Database dbproj />
<DatabaseProject Include= Database Database dbproj />
</ItemGroup>
<Target Name= BuildAllDatabaseProjects >
<MSBuild
Properties= TargetConnectionString=$(TargetConnectionString)
Projects= @(DatabaseProject)
Targets= Build;Deploy >
</MSBuild>
</Target>
( )在命令提示中運行:m *** uild /t:BuildAllDatabaseProjects TestBuild xml
</Project>
不能將值 NULL 插入列 **
原因:這是資料庫表設計的錯誤 所涉及的表的欄位中設置了不能為空的屬性 但是傳入的值為null 所以報錯
解決方法:查看是否所傳入的值是否為Null 或修改資料庫中表的所對應的列的屬性
未能載入類型 命名空間 類
原因:
( )項目修改後沒有進行編譯
( )項目中原有的命名空間可能被修改了
( )項目中所需要的ascx或其他頁面不存在 或不包含在項目中
解決方法:
( )在修改完成之後 請重新生成或編譯整個項目或解決方案
( )手工修改所改動的命名空間 注意名稱的大小寫 再重新編譯
( )將相關的文件包含在項目中
不能訪問只讀文件 **** ***
解決方案:
給虛擬目錄所對應的文件加上 Everyone/寫入 許可權即可
請求因 HTTP 狀態 失敗 Access Denied解決方法:在iis信息伺服器上把匿名訪問和允許iis控制密碼給勾上
有一個無效 SelectedValue 因為它不在項目列表中
原因
( )在沒有綁DropDownList之前就給DropDownList SelectedValue 賦值
( )dropdownlist中出現了null值
無法在 已存在的情況下創建/影像復制該文件
解決方案 重新編譯項目(多個project全部重新編譯) 關閉vs 重新打開 必要時重新啟動機子
用戶 CASPNET 登錄失敗登錄失敗
異常詳細信息: System Data SqlClient SqlException: 用戶 COOASPNET 登錄失敗
這是怎麼回事啊?
因為你的程序連接SQLServer的連接字元串是用了windows集成登陸 你可以改成用資料庫帳號密碼登陸 連接字元串的寫法是
server=localhost;uid=sa;pwd=xxxx;database=master;
server是資料庫伺服器的機器名或者IP 如果是同一台機可以用localhost
uid是資料庫登陸帳號
pwd是資料庫密碼
database是資料庫初始owner名稱
答案
右擊桌面我的電腦 選擇 管理 雙擊打開的 計算機管理 對話框中的 本地用戶和組 下的 組 在右邊的窗口中雙擊 Remote Desktop Users 組 在打開的 Remote Desktop Users 屬性對話框中 單擊添加 在打開的 添加用戶 對話框中單擊 高級 再單擊 立即查找 按鈕 在 搜索 結果中 雙擊ASPNET(如果是IIS NEOR SERVERCE )再點擊兩次確定完成添加 用戶
單擊 開始 所有程序 Microsoft SQL Server 企業管理器 在打開的 控制台根目錄 選擇相應的資料庫 右擊該資料庫的中的 用戶 選擇 新建資料庫用戶 在 新建用戶 對話 框中點擊 登陸名 右側的下拉列表框 選擇 新建 打開 新建登陸對話框 點擊名稱右側的 省略號按鈕 在打開的對話框中將 列出的名稱 中選擇 本機的名稱 再在下面的名稱框中選定 Remote Desktop Users 然後點擊 成員 按鈕 雙擊 ASPNET(如果是IIS NEOR SERVERCE ) 然後點擊確定 在 新建登陸對話 框 中的默認設置的 資料庫 選項中選擇相應的資料庫名稱 再在 資料庫訪問 選項下勾選相應 的資料庫點擊確定 完成將默認的匿名用戶添加到SQL
用戶 nt authority eork service 登錄失敗
> sqlserver 調成sql server 和windows驗證模式
>
(以下方法僅供參考)
第一步 把 NT AUTHORITYNEORK SERVICE 添加到Administrator組中
我的電腦 >右鍵 >管理 >本地用戶和組
選擇 組 >雙擊Administrators >單擊 添加 >單擊 高級 >單擊 立即查找 >在下面的列表中選擇Neork Service用戶 >兩次單擊 確定 >加入
第二步 在企業管理器中加入NetWord Service用戶
打開Sql Server企業管理器 >選擇資料庫實例 >打開 安全性 節點 >選擇 登錄 >在右邊的列表中單擊右鍵 >選擇 新建登錄 >在 常規 選項卡中單擊 名稱 旁邊的按鈕 >選擇 Administrators 組 >單擊下面的 成員 按鈕 >選擇 Neork Service >單擊 添加 按鈕 >單擊 確定 返回 新建登錄 對話框 >保證身份驗證類型為 windows驗證 和 允許訪問 >單擊 確定 >關閉 企業管理器
第三步
重新運行程序 資料庫連接字元串選擇windows驗證即可
> 在sqlserver中添加帳戶或IIS_WPG工作組
此方法來自於
未能載入視圖狀態 正在向其中載入視圖狀態的控制項樹必須與前一請求期間用於保存視圖狀態的控制項樹相匹配 例如 當以動態方式添加控制項時 在回發期間添加的控制項必須與在初始請求期間添加的控制項的類型和位置相匹配
原因 viewstate的在作用是將控制項的狀態保存 在下次Post給伺服器 伺服器進行恢復控制項的狀態 (控制項的狀態包括 值和事件 )
解決方法
( )每一個UserControl的viewstate都改為false
( )加入這個
this Page EnableViewState = false;
此方法來源於 _astar/archive/ / / /l
由於啟動用戶實例的進程時出錯 導致無法生成 SQL Server 的用戶實例 該連接將關閉
問題原因
這是微軟的bug 並且微軟已經承認 詳情如下
出現此錯誤的條件是 你用過遠程桌面連接 並且安裝了SQL +VS 就有很大可能觸發這個問題 微軟說會在將來的XP SP 裡面解決掉這個問題
解決
ID= &SiteID=
如果你看不懂英文 那麼我告訴你我的解決辦法
刪除C:Documents and Settings[USERNAME]Local SettingsApplication DataMicrosoftMicrosoft SQL Server DataSQLEXPRESS目錄即可 [USERNAME]是Windows用戶名 比如說Administrator
此問題來於
Server Application Unavailable
The web application you are attempting to access on this web server is currently unavailable Please hit the Refresh button in your web browser to retry your request
Administrator Note: An error message detailing the cause of this specific request failure can be found in the application event log of the web server Please review this log entry to discover what caused this error to occur
解決
如果你運行WinXP/IIS 為了給ASPNET工作進程訪問你的web工程文件夾的權力請到網站文件所在的目錄 右鍵一級文件夾 選Security-Add-鍵入 ASPNET 點擊OK或點擊Check Names 如果彈出對話框提示 Name not Found 則應點擊Locations改變位置到本機計算機名 點擊OK 分配此用戶許可權為 Full Control 點擊OK
錯誤變為
You are not authorized to view this page
You do not have permission to view this directory or page using the credentials you supplied
解決
在IIS里右鍵此虛擬目錄-Properties-Directory Security-Edit 勾選上Integrated Windows authentication即可
超時時間已到 超時時間已到 但是尚未從池中獲取連接 出現這種情況可能是因為所有池連接均在使用 並且達到了最大池大小
可能原因如下 並發操作 Connection用後沒有關閉 或者因為DataReader連接獨占連接
解決方法
修改幾個關鍵頁面或訪問比較頻繁的資料庫訪問操作 使用DataAdapter和DataSet來獲取資料庫數據 不要使用DataReader
在訪問資料庫的頁面上使用數據緩存 如果頁面的數據不是經常更新(幾分鍾更新一次)的話 使用Cache對象可以不用訪問資料庫而使用緩存中的內容 那麼可以大大減少連接數量
修改代碼 把使用Connection對象的地方都在Close()後面加上Dispose()調用
建議對資料庫操作進行大的修改 建立自己的資料庫操作代理類 繼承System IDisposable介面 強迫釋放資源 這樣就不會出現連接數量不夠的問題了
包載入失敗
未能正確載入包 Visual Web Developer Trident Designer Package (GUID =
{ AE E C D E F A AEFF } 請與包供應商聯系以獲得幫助 由於可能會發生環境損壞 建議重新啟動應用程序 要禁止將來將來載入此包嗎?可以使用 devenv reswetskippkgs 重新啟用包載入
每次開機打開vs 都會有這個提示 煩
於是在google了一下 發現很多方法都試過了 只有一個解決一試就行
解決方法如下:
設置系統變數 VsLogActivity=
在%APPDATA%MicrosoftVisualStudio 文件夾下創建文件ActivityLog xml
從 WINNTMicroSoft NETFrameworkv xxx 復制文件gdiplus dll 到 Program FilesVisual Studio Common Packages文件夾下
在命令行下運行命令 devenv /resetskippkgs
注:發現此問題只有在win 會出現 win 就不會出現這個問題
用戶 xxxASPNET登錄失敗
第一步
把 NT AUTHORITY NetWORK SERVICE 添加到Administrator組中
我的電腦 >右鍵 >管理 >本地用戶和組
選擇 組 >雙擊Administrators >單擊 添加 >單擊 高級 >單擊 立即查找 >在下面的列表中選 Neork Service用戶 >兩次單擊 確定 >加入
第二步 在企業管理器中加 Neork Service用戶
打開Sql Server企業管理器 >選擇資料庫實例 >打開 安全性 節點 >選擇 登錄 >在右邊的列表中單擊右鍵 >選擇 新建登錄 >在 常規 選項卡中單擊 名稱 旁邊的按鈕 >選擇 Administrators 組 >單擊下面的 成員 按鈕 >選擇 Neork Service >單擊 添加 按鈕 >單擊 確定 返回 新建登錄 對話框 >保證身份驗證類型為 windows驗證 和 允許訪問 >單擊 確定 >關閉 企業管理器
第三步
重新運行asp Net程序 資料庫連接字元串選擇windows驗證即可
以上針對win 如果是win 加ASp Net用戶
無法在 已存在的情況下創建/影像復制該文件
解決方法 重新編譯整個項目 或者重啟電腦
Could not create an environment: OCIEnvCreate returned
解決方案一
主要是將oracle主目錄oracle的讀寫許可權賦予或者是IUSER_ 和IWAM_ 重啟計算機
解決二:
打開在IIS中的WEB屬性--主目錄--執行許可權【改為-腳本和可執行文件】
-應用程序池【改為-MSSharePointAppPool】 刷新OK
解決三:
文件夾許可權可以不用管
設置ORACLE_HOME變數的方法如下
控制面板>>系統>>高級>>環境變數>>系統變數>>新建系統變數
變數名寫ORACLE_HOME
變數值添實際的ORACLE_HOME路徑 在注冊表中有
由於目標機器積極拒絕 無法連接
在添加完引用後 用localhost替換掉所有的localhost: 重新編譯
能載入視圖狀態 正在向其中載入視圖狀態的控制項樹必須與前一請求期間用於保存視圖狀態的控制項樹相匹配 例如 當以動態方式添加控制項時 在回發期間添加的控制項必須與在初始請求期間添加的控制項的類型和位置相匹配
解決 在頁面的 Page 項添加 EnableViewState= false 即可
在以下方法或屬性之間的調用不明確 method 和 method
因隱式轉換的緣故 編譯器無法調用重載方法的某種形式 可以用以下方法糾正該錯誤
以不發生隱式轉換的方式指定此方法的參數
移除此方法的所有重載
在調用方法之前 強制轉換到正確的類型
在應用程序級別以外使用注冊為 allowDefinition= MachineToApplication
解決 在網站對應的虛擬目錄上右鍵 選屬性 然後在應用程序名後點創建 名字隨便填
[子目錄不會繼承上級的屬性 所以要將aspx文件所在的目錄屬性設置正確]
無法識別的配置節 connectionStrings
原因
用vs 開發的應用程序需要使 framework 而在iis中的默環境是 這時將發生不可識別的節點的問題
解決辦法
環境升級為 開始-》運行-》cmd-》
C:WINDOWSMicrosoft NETFrameworkv aspnet_regiis exe i
Timeout expired The timeout period elapsed prior to obtaining a connection from the pool This may have occurred because all pooled connections were in use and max pool size was reached
Description: An unhandled exception occurred ring the execution of the current web request Please review the stack trace for more information about the error and where it originated in the code
Exception Details: System InvalidOperationException: Timeout expired The timeout period elapsed prior to obtaining a connection from the pool This may have occurred because all pooled connections were in use and max pool size was reached
主要原因可能有
使用了連接池 大量的sqlconnection用了後忘記關閘門 導致SQL佔用嚴重 可以用 exec sp_who 這個存儲過程查看一下
連接池的連接數有所限制
解決方法:
釋放連接池 調用Connection對象的Close()方法關閉資料庫連接
利用try catch finally對資料庫連接進行異常處理 當無法連接資料庫時將拋出異常 並顯示出錯信息 見catch代碼塊所示 在此程序中 無論是否發生異常 都可以通過finally區塊關閉資料庫的連接 從而節省計算機資源
將SqlConnection對象包含到using區塊中 這樣程序會自動調用Dispose()方法釋放SqlConnection對象所佔用的系統資源 無需再使用SqlConnection對象的Close()方法
指定min pool size表示連接池允許的最小連接數(默認為 ) 下面的代碼指定了SqlConnection對象的max pool size為 min pool size為
lishixin/Article/program/net/201311/11175
『肆』 編譯器錯誤消息: ASPNET: 請確保此代碼文件中定義的類與「inherits」特性匹配,並且該類擴展的基類
修改對應的aspx文件,找到開頭的地方,修改成:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="shop_proct_type
aspx.cs" Inherits="shop_proct_type" %>
其中CodeFile=後面的是哪個aspx.cs文件就寫哪個,如實寫。
『伍』 初學asp.net C#,請教inherits的問題
inherits字面理解為:繼承
CodeFile指的是你的後台文件,即你的以cs為擴展名的文件
像以下這個指令,你可以將CodeFile="cs1.aspx.cs"更改為:CodeFile="test1.aspx.cs",同時將你的Inherits="test1" 更改為:Inherits="你這個文件的命名空間" 。
還有一個問題,就是在aspx頁面後台,不建議您使用「Main」這個命名的方法的。它不是控制台程序,也不是程序的入口。
『陸』 VS2005 debug編譯和msbuild編譯 有什麼區別
用aspnet_compiler發布網站在asp.net 2.0模型中,vs2005已經完全脫離了編譯而成為了一個徹底的ide.算是一個不小的改動。其中更是取消了有關Web Application的概念,使得習慣了vs2003的人剛開始的時候會有一些摸不著頭腦。下面簡單說一下我在使用過程中自己總結的,算是一點經驗。
新建web工程並且位置是文件系統的時候,vs2005隻是幫你建好了一個sln文件,這個東西只是指引msbuild 如何進行編譯的,過程是:ide 調用 msbuild ,msbuild解析sln文件,msbuild調用aspnet_compiler.exe進行網站的編譯。所以aspnet_compiler.exe只是負責進行網站的編譯的。
預編譯的概念在 .netframework 1.1 裡面就存在了,vs2003中的預編譯指的是將頁面對應的cs/vb文件與resx文件編譯後統一集成到一個dll中放到bin目錄下,將aspx文件直接拷貝過去。這樣做會留下隱患,因為aspx文件就直接暴露在最後的發行包中,如果完全是codeb-behind模型還好,只能改改界面,如果採用了頁面上的來生成頁面,源代碼就暴露了。針對這些問題,vs2005採用了一種新的模式。
請參看ASP.NET 編譯工具 (Aspnet_compiler.exe) 這篇文章了解對各種文件的處理方式。
IDE發布:
vs2005中選擇 生成-〉發布網站,在對話框中的操作將映射到aspnet_compiler.exe的參數中,可更新的發布對應 -u,其他選項類似,請參考上面的文章了解。
注意:發布時將忽略web.config中的debug參數,統一生成無調試信息的文件。
手工編譯:
簡單說來,如果是無更新發布模式編譯,appcode下面的class編譯成dll放在bin下,頁面內容清空位置不變作佔位用,同時頁面被編譯成一個隨機名稱的dll,增加一個同名.compiled文件到bin目錄下,內容大概如下:
<?xml version="1.0" encoding="utf-8"?>
<preserve resultType="3" virtualPath="/Forum/AdminList.aspx" hash="6772609c3" filehash="49154463f1d6738c" flags="110000" assembly="App_Web_hmrycg3w" 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的映射。這樣最大限度的保護了頁面的敏感信息,發布過的網站中只能看見一堆文件名了。可更新的發布模式與vs2003類似,頁面就直接拷貝過來不予編譯了。
講了一堆原理,下面說一下aspnet_compiler.exe的調用方法,這是我使用的例子
我的開發目錄是這樣的
Project/
library/
devroot/
pubroot/
proj.sln
使用的命令如下:
aspnet_compiler -v / -p .\devroot -f .\pubroot
分析:
-v / 指明了iis的虛擬目錄
-p .\devroot 表示代碼實際位置
.\pubroot 指明了要發布的位置
-f 表示強制改寫目標位置
你還可以用-u來進行傳統意義上的預編譯,-d來插入編譯符號。
總的來說,aspnet_compile結合msbuild,提供了一個很好的自動化編譯環境,值得研究研究:)
『柒』 aspnet有什麼好
ASP.NET優點主要表現在:
◆可管理性:
ASP.NET 使用基於文本的、分級的配置系統,簡化了將設置應用於伺服器環境和 Web 應用程序的工作。因為配置信息是存儲為純文本的,因此可以在沒有本地管理工具的幫助下應用新的設置。配置文件的任何變化都可以自動檢測到並應用於應用程序。詳細信息,請參閱ASP.NET 配置。
◆安全:
ASP.NET 為 Web 應用程序提供了默認的授權和身份驗證方案。開發人員可以根據應用程序的需要很容易地添加、刪除或替換這些方案。詳細信息,請參閱ASP.NET 安全。
◆易於部署:
通過簡單地將必要的文件復制到伺服器上,ASP.NET 應用程序即可以部署到該伺服器上。不需要重新啟動伺服器,甚至在部署或替換運行的已編譯代碼時也不需要重新啟動。詳細信息,請參閱ASP.NET 部署。
◆增強的性能:
ASP.NET 是運行在伺服器上的已編譯代碼。與傳統的 Active Server Pages (ASP) 不同,ASP.NET 能利用早期綁定、實時 (JIT) 編譯、本機優化和全新的緩存服務來提高性能。詳細信息,請參閱ASP.NET 性能監視。
◆靈活的輸出緩存:
根據應用程序的需要,ASP.NET 可以緩存頁數據、頁的一部分或整個頁。緩存的項目可以依賴於緩存中的文件或其他項目,或者可以根據過期策略進行刷新。
◆國際化:
ASP.NET 在內部使用 Unicode 以表示請求和響應數據。可以為每台計算機、每個目錄和每頁配置國際化設置。
◆移動設備支持:
ASP.NET 支持任何設備上的任何瀏覽器。開發人員使用與用於傳統的桌面瀏覽器相同的編程技術來處理新的移動設備。
◆擴展性和可用性:
ASP.NET 被設計成可擴展的、具有特別專有的功能來提高群集的、多處理器環境的性能。此外,Internet 信息服務 (IIS) 和 ASP.NET 運行時密切監視和管理進程,以便在一個進程出現異常時,可在該位置創建新的進程使應用程序繼續處理請求。詳細信息,請參閱ASP.NET 進程隔離。
◆跟蹤和調試:
ASP.NET 提供了跟蹤服務,該服務可在應用程序級別和頁面級別調試過程中啟用。可以選擇查看頁面的信息,或者使用應用程序級別的跟蹤查看工具查看信息。在開發和應用程序處於生產狀態時,ASP.NET 支持使用 .NET Framework 調試工具進行本地和遠程調試。當應用程序處於生產狀態時,跟蹤語句能夠留在產品代碼中而不會影響性能。
◆與 .NET Framework 集成:
因為 ASP.NET 是 .NET Framework 的一部分,整個平台的功能和靈活性對 Web 應用程序都是可用的。也可從 Web 上流暢地訪問 .NET 類庫以及消息和數據訪問解決方案。ASP.NET 是獨立於語言之外的,所以開發人員能選擇最適於應用程序的語言。另外,公共語言運行庫的互用性還保存了基於 COM 開發的現有投資。
◆與現有ASP應用程序的兼容性:
ASP和ASP.NET 可並行運行在IIS Web伺服器上而互不沖突;不會發生因安裝 ASP.NET 而導致現有 ASP 應用程序崩潰的可能。ASP.NET 僅處理具有 .aspx 文件擴展名的文件。具有 .asp 文件擴展名的文件繼續由 ASP 引擎來處理。然而,應該注意的是會話狀態和應用程序狀態並不在 ASP 和 ASP.NET 頁面之間共享。
另外ASP.NET優點還包括了ASP.NET啟用了分布式應用程序的兩個功能:Web窗體和 XML Web 服務。相同的配置和調試基本結構支持這兩種功能。
Web 窗體技術使您建立強大的基於窗體的網頁。Web 窗體頁面使用可重復使用的內建組件或自定義組件以簡化頁面中的代碼。
使用 ASP.NET 創建的 XML Web 服務可使您遠程訪問伺服器。使用 XML Web 服務,商家可以提供其數據或商業規則的可編程介面,之後可以由客戶端和伺服器端應用程序獲得和操作。通過在客戶端/伺服器和伺服器/伺服器方案中的防火牆范圍內使用標准(如 XML 消息處理和 HTTP),XML Web 服務可啟用數據交換。以任何語言編寫的且運行在任何操作系統上的程序都能調用 XML Web 服務。
ASP.NET優點就向你介紹到這里,希望通過這樣的介紹使你更加了解ASP.NET優點,更好的使用ASP.NET。