當前位置:首頁 » 操作系統 » aspnet資料庫實例

aspnet資料庫實例

發布時間: 2023-05-01 22:04:33

A. 用axios怎樣解決共享session的問題

方法/步驟

1
客戶端SessionID值唯一;
對於不同的域名:主域名、子域名、跨站點域名或跨伺服器域名,用戶在打開頁面時會產生不同的SessionID
為了使這些站點在用戶登錄時只登錄一次,那我們就要解決SessionID的問題,必須使SessionID在這些共享Session的站點中只產生一次。而SessionID是存儲在客戶端的cookie之中鍵值為ASP.NET_SessionId的一個字元串(也可以存儲在URL中,這里不作使介紹),為此只須念陪使各站點存儲的SP.NET_SessionId唯一即可。

2
因每個客戶端在打開時會產生一個SessionID,為此我們要做的就是重置SessionID。我們可以在繼承仔虧蠢HttpMole,在結束請求時重寫SessionID。
為使用以上代碼,須配置下面節點項。
<httpMoles>
<add name="節點名稱" type="類名全稱, 程序集"/>
</httpMoles>

3
Session值的共享;
配置sessionState置節點,使用StateServer或sqlServer來實現Session共享。
為實現跨伺服器共享,必須在Web.config配置:
<machineKey decryptionKey="" validationKey="" validation="SHA1" decryption="Auto"/>
並且,不同伺服器上站點配置必須用相同的Web.config,各站點目錄配置也要相同。

4
使用StateServer:
存儲Session的伺服器必須開啟StateServer:ASP.NET狀態服務。只有機器重起的情況下才導致Session丟失。
<sessionState cookieless="false" timeout="50" mode="StateServer" stateConnectionString="tcpip=IpAddress:42424"/>
若StateServer在本機存儲,則IpAddress為:127.0.0.1;若StateServer為遠程伺服器,則為IpAddress為遠程伺服器IP地址,並且修改注冊表項如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\空昌Services\aspnet_state\Parameters]
"Port"=dword:0000a5b8
"AllowRemoteConnection"=dword:00000001

5
使用SQLServer:
必須開啟SQLServer代理服務,此服務負責清除過期的Session,若沒有開服務,則Session不會過期。
使用SQLServer在機器重啟後Session不會丟失。
Web.config配置:
<sessionState mode="SQLServer" sqlConnectionString="server=DBIpAddress; uid=myid; pwd=mypwd;"/>

6
資料庫配置:
使用aspnet_regsql.exe工具
ASP.NET 2.0版本後微軟提供了aspnet_regsql.exe工具可以方便的配置Session資料庫.該工具位於 Web 伺服器上的"系統根目錄\Microsoft.NET\Framework\版本號"文件夾中.
使用舉例:
aspnet_regsql.exe -S . -U sa -P 123456 -ssadd -sstype p
-S參數:
表示資料庫實例名稱. 可以用"."表示本機.
-U和-P參數:
表示用戶名和密碼.
-E參數:
可以再-U –P 與 -E中選擇一組. –E表示以當前系統用戶通過windows身份驗證登錄資料庫, -U -P則是使用SqlServer用戶登錄資料庫.
-ssadd / –ssremove 參數:
-ssadd表示是添加Session資料庫, -ssremove表示移除Session資料庫.
sstype 參數說明:

t
將會話數據存儲到 SQL Server tempdb 資料庫中。這是默認設置。如果將會話數據存儲到 tempdb 資料庫中,則在重新啟動 SQL Server 時將丟失會話數據。

p
將會話數據存儲到 ASPState 資料庫中,而不是存儲到 tempdb 資料庫中。

c
將會話數據存儲到自定義資料庫中。如果指定 c 選項,則還必須使用 -d 選項包括自定義資料庫的名稱。

sessionState參數說明:

屬性
說明

allowCustomSqlDatabase
可選的 Boolean 屬性。
指定會話狀態 SQL 資料庫是否可以是自定義資料庫(而不是 ASP.NET 默認資料庫)。如果為 false,則不能指定初始目錄或資料庫作為 sqlConnectionString 屬性的值。默認會話狀態 SQL 資料庫為 ASPState 資料庫。有關更多信息,請參見會話狀態模式。
此屬性是 .NET Framework 2.0 版中的新屬性。
默認值為 false。

cookieless
可選的 HttpCookieMode 屬性。
指定對於 Web 應用程序使用 Cookie 的方式。
cookieless 屬性可以為下列可能值之一。默認值為 UseCookies。


說明

AutoDetect
ASP.NET 確定請求瀏覽器或請求設備是否支持 Cookie。如果請求瀏覽器或請求設備支持 Cookie,則 AutoDetect 使用 Cookie 來保留用戶數據;否則,將在查詢字元串中使用一個標識符。如果瀏覽器或設備支持 Cookie,但當前禁用了 Cookie,則請求功能仍會使用 Cookie。

UseCookies
無論瀏覽器或設備是否支持 Cookie,都使用 Cookie 來保留用戶數據。

UseDeviceProfile
ASP.NET 根據 HttpBrowserCapabilities 設置來確定是否使用 Cookie。如果 HttpBrowserCapabilities 設置指示瀏覽器或設備支持 Cookie,將使用 Cookie;否則,將在查詢字元串中使用一個標識符。

UseUri
無論瀏覽器或設備是否支持 Cookie,調用功能都使用查詢字元串來存儲標識符。

cookieName
可選的 String 屬性。
指定存儲會話標識符的 Cookie 的名稱。
此屬性是 .NET Framework 2.0 版中的新屬性。
默認值為 "ASP.NET_SessionId"。

customProvider
可選的 String 屬性。
指定用於存儲和檢索會話狀態數據的自定義會話狀態提供程序的名稱。該提供程序在 providers 元素中指定。僅當會話狀態模式設置為 Custom 值時,才使用該提供程序。有關更多信息,請參見會話狀態模式。
此屬性是 .NET Framework 2.0 版中的新屬性。
默認值為空字元串 ("")。

mode
可選的 SessionStateMode 屬性。
指定存儲會話狀態值的位置。有關更多信息,請參見會話狀態模式。
mode 屬性可以為下列可能值之一。默認值為 InProc。


說明

Custom
會話狀態將使用自定義數據存儲區來存儲會話狀態信息。

InProc
會話處於正在處理 ASP.NET 輔助進程的狀態。

Off
會話狀態被禁用。

SQLServer
會話狀態將使用進程外 SQL Server 資料庫來存儲狀態信息。

StateServer
會話狀態將使用進程外 ASP.NET 狀態服務來存儲狀態信息。

partitionResolverType
可選的 String 屬性。
指定在哪裡存儲會話狀態。如果 partitionResolverType 屬性中指定了值,則忽略 sqlConnectionString 和 stateConnectionString 屬性。PartitionResolverType 屬性返回的連接字元串將用於每個請求,為請求的其餘部分連接到適當的伺服器位置。如果連接字元串無效,ASP.NET 將引發一個異常,該異常與當配置的伺服器連接字元串無效時引發的異常相同。該屬性用於在 SQL 或狀態伺服器模式下在多個後端節點上劃分會話狀態數據。
此屬性是 .NET Framework 2.0 版中的新屬性。
默認值為空字元串。

regenerateExpiredSessionId
可選的 Boolean 屬性。
指定當客戶端指定了過期的會話 ID 時是否重新發出會話 ID。默認情況下,當啟用了 regenerateExpiredSessionId 時,僅為 cookieless 模式重新發出會話 ID。有關更多信息,請參見 IsCookieless。
此屬性是 .NET Framework 2.0 版中的新屬性。
默認值為 true。

sqlCommandTimeout
可選的 TimeSpan 屬性。
指定使用 SQL Server 會話狀態模式的 SQL 命令的持續時間超時(秒)。持續時間超時是 SQL 命令可以處於空閑狀態的時間(秒),超過此時間之後,該命令將被取消。
此屬性是 .NET Framework 2.0 版中的新屬性。
默認值為 0:00:30(30 秒)。

sqlConnectionString
可選的 String 屬性。
為運行 SQL Server 的計算機指定連接字元串。該屬性在 mode 屬性設置為 SQLServer 值時是必需的。有關更多信息,請參見會話狀態模式。

注意

若要在使用 SQLServer 模式時提高您的應用程序的安全性,請使用受保護的配置來加密配置的 sessionState 節,以幫助保護 sqlConnectionString 值。

默認值為 "data source=127.0.0.1;Integrated Security=SSPI"。

stateConnectionString
可選的 String 屬性。
指定遠程存儲會話狀態的伺服器名稱或地址以及埠。埠值必須為 42424。當 mode 為 StateServer 值時,該屬性是必需的。確保運行 ASP.NET 狀態服務的伺服器是存儲會話狀態信息的遠程伺服器。該服務隨 ASP.NET 一起安裝,默認情況下為 %SystemRoot%\Microsoft.NET\Framework\VersionNumber\aspnet_state.exe。有關更多信息,請參見會話狀態模式。

注意

若要在使用 StateServer 模式時提高您的應用程序的安全性,請使用受保護的配置來加密配置的 <sessionState> 節,以幫助保護 stateConnectionString 值。

默認值為 "tcpip=127.0.0.1:42424"。

stateNetworkTimeout
可選的 TimeSpan 屬性。
指定 Web 伺服器與狀態伺服器之間的 TCP/IP 網路連接可以處於空閑狀態的時間(秒),超過此時間後,請求將被取消。該屬性在 mode 屬性設置為 StateServer 值時使用。
默認值為 10 秒。

timeout
可選的 TimeSpan 屬性。
指定在放棄一個會話前該會話可以處於空閑狀態的分鍾數。對於進程內和狀態伺服器模式,timeout 屬性不能設置為大於 525,601 分鍾(1 年)的值。
會話 timeout 配置設置僅適用於 ASP.NET 頁。更改會話 timeout 值不會影響 ASP 頁的會話超時時間。同樣,更改 ASP 頁的會話超時時間不會影響 ASP.NET 頁的會話超時時間。
默認值為 20 分鍾。

useHostingIdentity

7
可選的 TimeSpan 屬性。
指定在放棄一個會話前該會話可以處於空閑狀態的分鍾數。對於進程內和狀態伺服器模式,timeout 屬性不能設置為大於 525,601 分鍾(1 年)的值。
會話 timeout 配置設置僅適用於 ASP.NET 頁。更改會話 timeout 值不會影響 ASP 頁的會話超時時間。同樣,更改 ASP 頁的會話超時時間不會影響 ASP.NET 頁的會話超時時間。
默認值為 20 分鍾。

useHostingIdentity
可選的 Boolean 屬性。
指定會話狀態將恢復為宿主標識還是使用客戶端模擬。
如果為 true,ASP.NET 將使用下列進程憑據之一來連接會話狀態存儲區:
宿主進程;對於 Microsoft Internet 信息服務 [IIS] 5 和 5.1 版為 ASPNET,對於 Microsoft Windows Server 2003 則為 NETWORK SERVICE。
應用程序模擬標識,當使用了以下配置時使用此憑據:
<identity impersonate="true" userName="user" password="pwd" />
如果為 false,ASP.NET 將使用目前與當前請求的操作系統線程關聯的憑據來連接會話狀態存儲區。對於客戶端模擬,ASP.NET 將使用與瀏覽器協商的安全憑據來連接會話狀態存儲區。如果為 false,ASP.NET 在連接會話狀態存儲區時不會恢復為進程標識或應用程序模擬標識。有關更多信息,請參見 ASP.NET 模擬。
此屬性是 .NET Framework 2.0 版中的新屬性。
默認值為 true。

注意

在 .NET Framework 1.1 版中,如果 mode 屬性設置為 SQLServer,並且客戶端模擬有效,則 ASP.NET 使用來自 ASP.NET 客戶端模擬的客戶端憑據連接到運行 SQL Server 的計算機。

繼承的屬性
可選的屬性。
由所有節元素繼承的屬性。

B. 如何讓您的ASP.NET資料庫連接字元串是安全的

一、Data 的DataSource屬性,對應connectionString中的Data Source,「Data Source」可以由下列字元串代替:「server」,「address」,「addr」和「network address」。Data Source=.\SQLExpress也可以寫成這樣Data Source=(local)\SQLExpress。
二、Integrated 的IntegratedSecurity屬性,對應connectionString中的Integrated Security,「Integrated Security」可以寫成「trusted_connection」,為true時,使用當前的 Windows 帳戶憑據進行身份驗證,為false時,需要在連接中指定用戶 ID 和密碼。
三、的AttachDBFilename屬性,對應connectionString中的AttachDBFilename,「AttachDBFilename」可以寫成「extended properties」,「initial file name」。AttachDbFileName屬性指定連接打開的時候動態附加到伺服器上的資料庫文件的位置。這個屬性可以接受資料庫的完整路徑和相對路徑(例如使用|DataDirectory|語法),在運行時這個路徑會被應用程序的App_Data目錄所代替。
四、User 的UserInstance屬性,對應connectionString中的User Instance ,該值指示是否將連接從默認的 SQL Server Express 實例重定向到在調用方帳戶之下運行並且在運行時啟動的實例。UserInstance=true,在這種情況下,SQLServerExpress為了把資料庫附加到新的實例,建立一個新的進程,在打開連接的用戶身份下運行。在ASP.NET應用程序中,這個用戶是本地的ASPNET帳號或默認的NetworkService,這依賴於操作系統。為了安全地附加非系統管理員帳號(例如ASP.NET帳號)提供的資料庫文件,建立一個獨立的SQLServer用戶實例是必要的。

C. .net網站連接資料庫,打不開

1.檢液拆查SQL服務是否已啟動
2.檢查資料庫是否燃氏已附皮埋散加
3.檢查web.config文件中伺服器名,用戶名和密碼是否正確

D. asp.net資料庫網路連接

<add name="ASPNET3WEBDBCONNECTIONSTRING" connectionString="data source=(伺服器IP);user id=fwyhq;pwd=(正確的密碼);database=test"
providerName="System.Data.SqlClient" />
自己本機可以用本機驗證方式,這是最安全的連接方式,網路上需要知道資料庫伺服器的IP

補充:不是用外部的IP,另外的你的用戶沒有密碼,這也是不允許的。

E. 資料庫中有幾萬條數據,怎樣使用aspnetpage分頁控制項結合資料庫分頁讀取呢

可以用存儲過程分頁
/*
函數名稱: GetRecordFromPage
函數功能: 獲取指定頁的數據
參數說明: @tblName 包含數據的表名
@fldName 關鍵欄位名
@PageSize 每頁記錄數
@PageIndex 要獲取的頁碼
@OrderType 排序類型, 0 - 升序, 1 - 降序
@strWhere 查詢條件 (注意: 不要加 where)
*/
CREATE PROCEDURE GetRecordFromPage
@tblName varchar(255), -- 表名
@fldName varchar(255), -- 欄位名
@PageSize int = 10, -- 頁尺寸
@PageIndex int = 1, -- 頁碼
@OrderType bit = 0, -- 設置排序類型, 非 0 值則降序
@strWhere varchar(2000) = '' -- 查詢條件 (注意: 不要加 where)
AS
declare @strSQL varchar(6000) -- 主語句
declare @strTmp varchar(1000) -- 臨時變數
declare @strOrder varchar(500) -- 排序類型
if @OrderType != 0
begin
set @strTmp = '<(select min'
set @strOrder = ' order by [' + @fldName + '] desc'
end
else
begin
set @strTmp = '>(select max'
set @strOrder = ' order by [' + @fldName +'] asc'
end
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + ']' + @strOrder + ') as tblTmp)'
+ @strOrder
if @strWhere != ''
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + '] where ' + @strWhere + ' '
+ @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder
if @PageIndex = 1
begin
set @strTmp = ''
if @strWhere != ''
set @strTmp = ' where (' + @strWhere + ')'
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + ']' + @strTmp + ' ' + @strOrder
end
exec (@strSQL)
GO

F. 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

G. 網站在IIS上發布後 顯示資料庫連接失敗

你用的是Trusted Connection,發布後用戶會使用IIS默認用戶
作為網站,應該使用指定的資料庫賬號和密碼訪問
如:
Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

H. ASP.NET入門教程 7.1 資料庫

在開始學習ASPNET 數據控制項之前 讓我們先考慮一下數據源 數據大致上可以分為 類 關系型數據(relational data)根據範式規則組織成一系列的表 Microsoft Access Micrasoft SQL Server Oracle SAP DB 和MySQL中的數據都屬於這種類型 第二種類型的數據以樹型結構存儲 例如XML文件 Windows注冊表和Windows文件系統 最後一種類型數據的形式非常多 例如Excel文件 文本文件或私有格式 本教程(與絕大多數Web站點的數據交互一樣)討論關系型數據和XML文件

關系型資料庫將信息分割到表(table)中 而表包含了記錄(record 也稱為行) 一條記錄代表著表的主題的一個實例 每張表包含多個欄位(field) 也稱為列 它們按類型組織數據 例如 一張員工的表中可以包含每個員工的記錄 該表的列可能是NameFirst NameLast DateOfHire等等 對於每條記錄 每一列都有一個記錄的值 大多數管理系統中的資料庫由一組表組成 在Microsoft SQL Server中 一個或多個資料庫一起形成伺服器的一個實例 它也是本書中使用的資料庫 一般情況下 表中只包含數據 怎樣組織數據的描述信息 欄位的名稱以及各種限制都存放在資料庫中一個稱為元數據(metadata)的獨立結構中

XML文件不同於關系型資料庫 首先 它不是使用表 而是將數據存放在帶有分支的樹中 分支保存的數據越來越細化 每個數據集合以及單個數據都包含在節點中 例如 XML文件Employees中有一個Employees節點 表示樹型結構的主幹 接著對每個員工設置一個分支 在這個分支中將有FirstName LastName等分支 其次 XML文件是自描述的 因為元數據和數據存放在一起 每個信息都有一個HTML標記 該標記相當於一個容器 對所包含的數據進行描述 例如 數據 John 實際將保存為<NameFirst>John</NameFirst> 雖然自描述符會使XML文件增大 但它使得在沒有元數據信息的情況下能容易地理解數據

幾乎所有的數據源都有某種系統控制數據的使用許可權 安全上的第一個問題是驗證 系統在這里判斷是誰要求使用數據 關於驗證的話題在第 章中己經詳細介紹過 因此這里不再花費過多時間進行討論 一般地 有兩種類型的驗證 Windows Authentication(也稱為Trusted Security)和SQL Authentication 使用哪種驗證是在安裝資料庫的時候決定的 對於SQL Server Express 可以選擇Windows Authentication或Mixed 後者意味著可以使用Windows Authentication或SQL Authentication a SQL Server Express在安裝時默認選擇Mixed Authentication 本書默認使用Windows Authentication

本教程主要使用Microsoft的SQL Server 該產品以不同的功能集出售 但對於我們最簡單版本(SQL Server Express)的功能就足夠了 幸運的是 Microsoft免費提供SQL ServerExpress 而且可以按照本書給出的指令自動安裝SQL Server Express的好處在於 當您希望將自己的站點部署給公眾訪問的時候 所有的代碼都不需要修改就可以直接移植到功能完整的SQL Server中

一旦通過驗證(證明自己就是自己聲稱的人) 在使用數據時將有一組許可權和限制 首先是查看數據的限制 資料庫管理員(DBA)通常會限制直接訪問表 取而代之 您可能只能通過某個視圖或查詢查看包含一定欄位或記錄的數據 其次 您可能會遇到怎樣修改數據的限制 或者能否修改數據的限制 最後 即使可以修改數據 也存在數據可以怎樣修改的限制(稱為約束) 以使用Wrox United為例 一般情況下不能刪除在賽程表中的某個球隊(這樣就會使賽程表存在著邏輯上的錯誤 造成某些比賽沒有兩個球隊參加)

lishixin/Article/program/net/201311/14515

I. asp連接資料庫時,提示連接字元串中的數據源指定了未安裝的sqlserver實例,怎麼辦

asp連接資料庫時,提示連接字元串中的數據源指定了未安裝的sqlserver實例,怎麼辦?
Data Source=.\SQLEXPRESS;AttachDbFilename=E:\ASP.NET\BegASPNET\Site\App_Data\PlanetWrox.mdf;Integrated Security=True;MultipleActiveResultSets=True;User Instance=True

J. windows2008+iis配置 asp.net網站報這樣的錯誤,要怎麼改呀,謝謝了。error: 26 - Error Locating Server

錯誤提示:當建立到SQL Server的連接時,發生了與網路相關的或特定於實例的錯誤。資料庫伺服器沒被找到或不可訪問。請驗證資料庫實例名是否正確,SQL Server是否被配置為允許遠程連接。
* AttachDBFilename/extended properties(擴展屬性)/Initial File Name(扮旅初始文件名):可連接資料庫的主要文件的名稱,包括完整路徑。資料庫名稱必須用關鍵字資料庫指定。
* Data Source(數據源)/Server(伺服器)/Address(地址)/Addr(地址)/Network Address(網路地址):SQL Server實例的名稱或網路地址。(多實例:127.0.0.1,1551,使用IP,埠 的形式,不同實例的埠不同。注意補丁,防火牆的問題。)
* Database(資料庫)/Initial Catalog(初始編目):資料庫的名稱。
* Integrated Security(集成安全)/Trusted Connection(受信連接):表示Windows認證是否被用來連接資料庫。它可以被設置成True、False。默認值是False
* Password(密碼)/Pwd:與帳戶名相對應的密碼。
* Persist Security Info(保持安全信息):用來確定一旦連接建立了以後安全信息是否可用。如果值為真的話,說明像用戶名和密碼這樣對安全性比較敏感的數據可用,而如果值為偽則不可用。重置連接字元串將重新配置包括密碼在內的所有連接字元串的值。其默認值為False。
* Pooling(池):確定是否使用連接池。如果值為真的話,連廳春凳接就要從適當的連接池中獲得,或者,如果需要的話,連接將被創建,然後被加入森悉合適的連接池中。其預設值為真。
* User ID(用戶ID):用來登陸資料庫的帳戶名。
* Workstation ID(工作站ID):連接到SQL Server的工作站的名稱。其預設值為本地計算機的名稱。

熱點內容
隨機訪問方式 發布:2024-05-20 12:42:52 瀏覽:257
php判斷登陸 發布:2024-05-20 12:14:24 瀏覽:628
腳本精靈並且 發布:2024-05-20 11:39:40 瀏覽:266
綠盟登陸器單機怎麼配置列表 發布:2024-05-20 11:34:34 瀏覽:971
Android省電軟體 發布:2024-05-20 11:25:00 瀏覽:341
android鍵盤隱藏 發布:2024-05-20 11:23:40 瀏覽:523
瘋狂點擊的點擊腳本 發布:2024-05-20 11:09:06 瀏覽:686
飯團文件夾 發布:2024-05-20 10:56:18 瀏覽:575
win10系統重置密碼是多少 發布:2024-05-20 10:47:51 瀏覽:992
java加包 發布:2024-05-20 10:39:12 瀏覽:713