2012-09-26 66 views
1

我正在嘗試使用c#將數據發佈到Web服務(我寫的)。當我從本地機器運行它時,該Web服務運行良好。當我移動到它的服務器(我的建築內),它拋出這個錯誤:從Web服務向SQL Server 2008數據庫發佈數據會產生錯誤

Server was unable to process request.
---> ExecuteNonQuery: Connection property has not been initialized.

任何想法可能會導致什麼呢?

我已經檢查:

  • 應用程序池的身份 - 網絡服務

    部分使使用 ASP.NET來識別傳入的用戶的安全身份驗證模式的配置 。 - > 部分啓用配置 如果/在執行請求期間發生未處理的錯誤 時該怎麼辦。具體而言, 它使開發人員能夠配置html錯誤頁面 以代替錯誤堆棧跟蹤進行顯示。

     <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm"> 
          <error statusCode="403" redirect="NoAccess.htm" /> 
          <error statusCode="404" redirect="FileNotFound.htm" /> 
         </customErrors> 
         --> 
         <pages> 
          <controls> 
           <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
           <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
          </controls> 
         </pages> 
         <httpHandlers> 
          <remove verb="*" path="*.asmx"/> 
          <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
          <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
          <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/> 
         </httpHandlers> 
         <httpModules> 
          <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
         </httpModules> 
        </system.web> 
        <system.codedom> 
         <compilers> 
          <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
           <providerOption name="CompilerVersion" value="v3.5"/> 
           <providerOption name="WarnAsError" value="false"/> 
          </compiler> 
         </compilers> 
        </system.codedom> 
        <!-- 
         The system.webServer section is required for running ASP.NET AJAX under Internet 
         Information Services 7.0. It is not necessary for previous version of IIS. 
        --> 
        <system.webServer> 
         <validation validateIntegratedModeConfiguration="false"/> 
         <modules> 
          <remove name="ScriptModule"/> 
          <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
         </modules> 
         <handlers> 
          <remove name="WebServiceHandlerFactory-Integrated"/> 
          <remove name="ScriptHandlerFactory"/> 
          <remove name="ScriptHandlerFactoryAppServices"/> 
          <remove name="ScriptResource"/> 
          <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
          <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
          <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
         </handlers> 
        </system.webServer> 
        <runtime> 
         <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
          <dependentAssembly> 
           <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/> 
           <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/> 
          </dependentAssembly> 
          <dependentAssembly> 
           <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/> 
           <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/> 
          </dependentAssembly> 
         </assemblyBinding> 
        </runtime> 
    </configuration> 
    
+0

您是否設置了連接字符串,是否正確? – Tim

+2

如果您在連接字符串中使用集成安全性,則可能必須將其更改爲使用SQL登錄(用戶ID = myUsername;密碼= myPassword; Trusted_Connection = False;) – jac

+0

什麼樣的Web服務? ASMX? WCF?如果WCF:它是如何託管的? IIS或自託管?向我們展示相關的配置文件! –

回答

1

好像連接沒有被使用的命令對象相關聯。

檢查並確認創建連接對象是否存在問題。它是否正確初始化?它是否使用正確的連接字符串?

2

Connection property has not been initialized通常由Connection對象引起,原因是ConnectionString未提供或不正確的信息。

using (SqlConnection connection = new SqlConnection()) 
{ 
    // don't forget this line. 
    connection.ConnectionString = "valid connection string here"; 
    // then pass the connection to your command object 
    using (SqlCommand command = new SqlCommand()) 
    { 
     command.Connection = connection; 
     // other codes 
    } 
} 

附加說明:

SQL Server 2008 Connection Strings formats...

+0

連接字符串在代碼中指定。它所在的服務器是本地(Intranet)服務器。我寧願使用可信的連接安全性,但如果我無法解決此問題,可能會轉移到SQL身份驗證。 marc_s它是一個asmx –

0

我能解決我的問題。我實際上是對錯誤的服務器進行身份驗證。所以一旦我指出正確的服務器,它的工作。駕駛艙麻煩在這裏。

相關問題