我們目前正在從Server 2003遷移到Server 2008.我們對ASP.NET應用程序有幾個不同的環境更改。我們的測試環境此時正在完美工作,但具有相同代碼的生產機器將無效字符注入到SQL中。LINQ注入無效字符
以下是我通過SQL Server Profiler查看的SQL。
exec sp_executesql N'SELECT [t0].[VenuePDID], [t0].[VenueID], [t0].[VenueNumber], [t0].[MarketID], [t0].[ProgramID], [t0].[VenueTypeID], [t0].[SalesTypeID], [t0].[BackBarPaymentID], [t0].[Goal], [t0].[LocationTypeID], [t0].[VenueStatus], [t0].[Tab1ConfirmDate], [t0].[Tab1ConfirmedBy], [t0].[Tab2ConfirmDate], [t0].[Tab2ConfirmedBy], [t0].[DateContractRequested], [t0].[ContractRequestedBy], [t0].[ContractTypeRequested], [t0].[ContractAmtRequested], [t0].[ContractAmtLimit], [t0].[ContractSalesAmtRequested], [t0].[ContractSalesAmtMax], [t0].[ContractPerVistAmtLimit], [t0].[ContractSalesPerVisitAmtLimit], [t0].[ActiveDate], [t0].[InactiveDate], [t0].[WebsiteRejected], [t0].[ResponsibleGM], [t0].[CreateDate], [t0].[CreatedBः㐈 [1]
[1] 볧इ퀄㐀SELECT [t0].dBy], [t0].[timestamp], [t0].[DetailConfirmDate], [t0].[DetailConfirmBy], [t0].[SalesConfirmDate], [t0].[SalesConfirmBy], [t0].[ContractTypeId]
FROM [dbo].[tbl_VenueProgramDetails] AS [t0]
WHERE ([t0].[VenueID] = @p0) AND ([t0].[ProgramID] = @p1)',N'@p0 int,@p1 int',@p0=7477,@p1=27
我已經從工作測試環境中複製了所有的dll,並且得到了同樣的結果。我也指出測試Web服務器在活動數據庫和代碼工程。我已經將實時Web服務器指向測試數據庫,代碼就像上面那樣失敗。此時,問題必須與生產服務器上的IIS7配置或.Net相關。我似乎無法指出這一點。有沒有人看到過這個?
你是對的,它不是Unicode。這是一個全新安裝的服務器,沒有ISAPI過濾器,除了ASP.NET 1.1和2.0。我正在運行我的3.5代碼。你現在讓我想知道這是否會像糟糕的記憶一樣低。我禁用AV來測試那個殘疾人。 – cjibo 2009-02-11 02:41:38