我们目前正在从Server 2003迁移到Server 2008.我们对ASP.NET应用程序进行了一些不同的环境更改。我们的测试环境目前运行良好,但具有相同代码的生产机器将无效字符注入SQL。
以下是我通过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。我似乎无法指出它。有没有人看过这个?
答案 0 :(得分:1)
该问题最终成为网卡驱动程序。物理机器的问题不是配置或代码。
编辑:我遇到问题的机器是带有Broadcom网卡的HP DL360。我们将就此问题与HP联系。通过线路发送LINQ请求时,数据包组装错误。答案 1 :(得分:0)
CreatedB \ u0903 \ u3408 [1] \ uffff
那不是真正的Unicode ... U + FFFF显然不是一个Unicode字符,只有一个!
某些东西似乎是在内存的任意位上吐出二进制损坏。找到它并不会很有趣,因为它很可能是令人不快的低级别的东西。您的应用程序或生产计算机上的ISAPI扩展程序是否使用了任何可疑的非托管组件? (甚至其他钩子,比如狡猾的反病毒?)