2011-01-09 4 views
1

J'essaie de publier mon site sur un serveur distant. Mon fournisseur d'hébergement a fourni ma connectivité avec dsn via dotnetpanel. Lorsque je publie mon site, j'obtiens l'erreur comme indiqué dans la capture d'écran. J'ai également inclus mon fichier web.config. alt textMot clé non pris en charge: 'dsn'

Mon web.config est la suivante,

<?xml version="1.0" encoding="UTF-8"?> 
<!-- 
    Note: As an alternative to hand editing this file you can use the 
    web admin tool to configure settings for your application. Use 
    the Website->Asp.Net Configuration option in Visual Studio. 
    A full list of settings and comments can be found in 
    machine.config.comments usually located in 
    \Windows\Microsoft.Net\Framework\v2.x\Config 
--> 
<configuration> 

    <appSettings>  
      <add key="myDSN" value="evodsn"/>   
    </appSettings> 
    <connectionStrings> 
    <add name="evocon" connectionString="DSN=myDSN;" /> 

    </connectionStrings> 

    <system.net> 
    <mailSettings> 
     <smtp> 
     <network host="smtp.gmail.com" /> 
     </smtp> 
    </mailSettings> 
    </system.net> 


    <system.web> 
     <!-- 
      Set compilation debug="true" to insert debugging 
      symbols into the compiled page. Because this 
      affects performance, set this value to true only 
      during development. 
    --> 
    <httpHandlers> 
     <!--<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah"/>--> 
     <add verb="*" path="TinyMCEHandler.aspx" type="Moxiecode.TinyMCE.Web.HttpHandler, Moxiecode.TinyMCE" validate="false" /> 
     <add verb="*" path="*.mvc" validate="false" type="System.Web.Mvc.MvcHttpHandler, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" validate="true" /> 
    </httpHandlers> 

    <httpRuntime requestValidationMode="2.0" /> 



     <compilation debug="true" targetFramework="4.0"> 
      <assemblies> 
       <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
       <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
       <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
       <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> 
       <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" /></assemblies> 
     </compilation> 
     <!-- 
      The <authentication> section enables configuration 
      of the security authentication mode used by 
      ASP.NET to identify an incoming user. 
    --> 
    <globalization uiCulture="en" culture="en-GB" /> 
     <authentication mode="Forms"> 
      <forms loginUrl="~/Account.mvc/index" timeout="2880" protection="All" /> 
     </authentication> 
     <membership defaultProvider="evocon"> 
      <providers> 
       <clear /> 

     <add 
      name="evocon" 
      type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
      connectionStringName="evocon" 
      enablePasswordRetrieval="false" 
      enablePasswordReset="true" 
      requiresQuestionAndAnswer="false" 
      /> 


      </providers> 
     </membership> 
     <profile> 
      <providers> 
       <clear /> 
       <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ApplicationServices" applicationName="/" /> 
      </providers> 
     </profile> 
     <roleManager enabled="false"> 
      <providers> 
       <clear /> 
       <add connectionStringName="ApplicationServices" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
       <add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
      </providers> 
     </roleManager> 
     <!-- 
      The <customErrors> section enables configuration 
      of what to do if/when an unhandled error occurs 
      during the execution of a request. Specifically, 
      it enables developers to configure html error pages 
      to be displayed in place of a error stack trace.--> 

     <customErrors mode="Off"> 
      <error statusCode="403" redirect="NoAccess.htm"/> 
      <error statusCode="404" redirect="FileNotFound.htm"/> 
     </customErrors> 

     <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"> 
      <namespaces> 
       <add namespace="System.Web.Mvc" /> 
       <add namespace="System.Web.Mvc.Ajax" /> 
       <add namespace="System.Web.Mvc.Html" /> 
       <add namespace="System.Web.Routing" /> 
       <add namespace="System.Linq" /> 
       <add namespace="System.Collections.Generic" /> 
       <add namespace="Telerik.Web.Mvc.UI" /> 
      </namespaces> 
     </pages> 

    </system.web> 
    <!-- 
     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 runAllManagedModulesForAllRequests="true"> 
     </modules> 
     <handlers> 
      <remove name="MvcHttpHandler" /> 
      <remove name="UrlRoutingHandler" /> 
      <add name="MvcHttpHandler" preCondition="integratedMode" verb="*" path="*.mvc" type="System.Web.Mvc.MvcHttpHandler, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     </handlers> 
     <directoryBrowse enabled="false" /> 
     <defaultDocument> 
      <files> 
       <clear /> 
       <add value="Default.aspx" /> 
       <add value="Default.asp" /> 
       <add value="Default.php" /> 
       <add value="Default.htm" /> 
       <add value="Default.html" /> 
       <add value="Index.aspx" /> 
       <add value="Index.asp" /> 
       <add value="Index.php" /> 
       <add value="Index.htm" /> 
       <add value="Index.html" /> 
       <add value="parking.htm" /> 
      </files> 
     </defaultDocument> 
    </system.webServer> 
    <runtime> 
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
      <dependentAssembly> 
       <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
       <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0" /> 
      </dependentAssembly> 
     </assemblyBinding> 
    </runtime> 

    <location path="App_Data" allowOverride="false"> 
     <system.web> 
      <authorization> 
       <allow users="?" /> 
      </authorization> 
     </system.web> 
    </location> 
</configuration> 
+0

Oh non! L'écran jaune de la mort! CACHER! Je veux dire, votre site est déjà en production? Si c'est le cas, il ne devrait pas afficher de tels messages pour vos utilisateurs. –

Répondre

6

De la trace de pile, il semble que vous utilisez un objet SqlClient.SqlConnection, mais DSN est pour les connexions ODBC.

Vous modifiez votre chaîne de connexion pour utiliser une chaîne de connexion Sql Server ou modifiez l'objet de connexion dans votre code à ODBCConnection.

+0

Oui, j'utilisais auparavant la connexion sqlclient mais mon fournisseur d'hôte m'a fourni dsn. Je n'ai pas utilisé dsn auparavant dans le code. Mon site est basé sur asp.net mvc pourriez-vous s'il vous plaît me guider davantage – Tassadaque

+0

Je vous recommande fortement de vérifier auprès de votre fournisseur d'hébergement pour donner un accès direct à SQL Server. Si cela n'est pas possible, la seule autre option consiste à utiliser ODBCConnection dans votre code. Mais gardez à l'esprit que vous risquez de manquer certaines fonctionnalités si vous utilisez une couche ODBC disponible dans SQLConnection. – Chandu

+0

Je lui ai demandé de me donner un accès direct au serveur sql. Il m'a donné la réponse suivante. "Vous pouvez vous connecter à la base de données directement sans configurer l'entrée ODBC Vous devrez peut-être changer votre client MSSQL d'Enterprise Manager en SSMSE car la version MSSQL (MSSQL 2008) n'est pas supportée par Enterprise Manager" mais je ne pouvais pas comprendre ce qu'il essaie de dire – Tassadaque

-2

Voir le connection strings website pour une énorme collection d'exemples de chaînes de connexion valides pour les différentes bases de données et technologies.

Questions connexes