2016-03-31 13 views
1

Meine Anwendung ist in MVC 4 mit Sql Anywhere 16 ODBC mit Entity-Framework. Ich benutze Visual Studio 2010. Voraussetzung ist Multi-Tenant, also habe ich Verbindungsstring dynamisch auf meinem Global.asax erstellt und sobald die Hauptdatenbank verbunden wurde, erstelle ich Verbindungszeichenfolge der Benutzer-basierten Datenbank auf meinem Account-Controller.Sybase iAnywhere.Data.SQLAnywhere.SAException: DSN-Datenbankname existiert nicht

Anwendung läuft gut, wenn ich von Visual Studio laufen. aber wenn ich diese Anwendung auf IIS 8.5 veröffentliche und Anwendung auf Browser lade, zeigt es unten Fehler an.

<ErrorType>System.Data.EntityException: The underlying provider failed 
on Open. ---&gt; iAnywhere.Data.SQLAnywhere.SAException: DSN 'MainDB' 
does not exist at iAnywhere.Data.SQLAnywhere.SAConnection.Open() 
at 
System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean 
openCondition, DbConnection storeConnectionToOpen, DbConnection 
originalConnection, String exceptionCode, String attemptedOperation, 
Boolean&amp; closeStoreConnectionOnFailure) --- End of inner 
exception stack trace --- at 
System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean 
openCondition, DbConnection storeConnectionToOpen, DbConnection 
originalConnection, String exceptionCode, String attemptedOperation, 
Boolean&amp; closeStoreConnectionOnFailure) at 
System.Data.EntityClient.EntityConnection.Open() at 
PDMSReporter.Controllers.AccountController.Login(LoginModel Login) in 
E:\Projects\Triforce_PDM 
Reporter\Latest_PDMSReporter\PDMSReporter\PDMSReporter\Controllers\AccountController.cs:line 
56</ErrorType> 

<ErrorDesc>The underlying provider failed on Open.</ErrorDesc> 

Ich habe viel versucht, dieses Problem zu beheben. fand aber keine passende Lösung dafür.

Bitte helfen Sie mir, dieses Problem zu beheben oder schlagen Sie vor, wo ich es lösen kann.

Antwort

0

Die Fehlermeldung sagt Ihnen: "DSN 'MainDB' existiert nicht". Ihre Verbindungszeichenfolge verwendet einen DSN, den der Client nicht finden kann. Dies könnte daran liegen, dass Sie einen Benutzer-DSN und nicht einen System-DSN erstellen. Wenn Ihr Client als Dienst ausgeführt wird (z. B. in IIS), kann er keine Benutzer-DSNs lesen.

Wenn Sie den DSN mit dem Dienstprogramm dbdsn erstellen, stellen Sie sicher, dass Sie den Schalter -ws anstelle von -w verwenden.

+0

oh! Danke für deine Hilfe. Können Sie bitte erläutern, wie System DSN (oder irgendwelche Schritte oder Blog) zu machen. Es tut mir leid, aber ich bin neu in Sql Anywhere, also habe ich nicht zu viel Ahnung. – CrazyDev

+0

Hallo Ich bin in der Lage, System DSN hinzufügen und es funktioniert gut für mich danke für Ihre Hilfe. – CrazyDev