2016-03-31 11 views
1

My ApplicationがSQL Anywhereを使用するMVC 4にあります。16 Entityフレームワークを使用したODBC。私はVisual Studio 2010を使用しました。要件はマルチテナントなので、Global.asaxで接続文字列を動的に作成し、メインデータベースが接続されたら、アカウントコントローラでユーザーベースのデータベースの接続文字列を作成します。Sybase iAnywhere.Data.SQLAnywhere.SAException:DSNデータベース名が存在しません

アプリケーションはVisual Studioで実行するとうまく動作します。しかし、私はIIS 8.5でこのアプリケーションを公開し、ブラウザでアプリケーションをロードすると、以下のエラーが表示されます。

<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> 

この問題を解決するために多くの試みを行いました。それに対して適切な解決策を見出さなかった。

この問題を解決するか、私が解決できるところに投稿を提案してください。

答えて

0

「DSN 'MainDB'が存在しません」というエラーメッセージが表示されます。接続文字列が、クライアントが見つけることができないDSNを使用しています。これは、システムDSNではなくユーザーDSNを作成しているためです。クライアントがサービス(IISなど)として実行している場合、ユーザーDSNを読み取ることはできません。

dbdsnユーティリティを使用してDSNを作成する場合は、-wの代わりに-wsスイッチを使用してください。

+0

oh! k助けてくれてありがとう。システムDSN(またはステップやブログ)を作成する方法を詳しく教えてください。私は申し訳ありませんが、私はSQL Anywhereの新しいですので、あまりにも多くのアイデアを持っていません。 – CrazyDev

+0

こんにちは私はシステムDSNを追加できます。 – CrazyDev

関連する問題