Sybase iAnywhere.Data.SQLAnywhere.SAException:DSN数据库名称不存在

时间:2016-03-31 15:20:35

标签: asp.net-mvc sybase-ase sqlanywhere iis-8.5

My Application在使用Entity框架的Sql Anywhere 16 ODBC的MVC 4中。我使用Visual Studio 2010.要求是多租户,所以我在Global.asax上创建了连接字符串动态,一旦连接了主数据库,我就在我的帐户控制器上创建基于用户的数据库的连接字符串。

当我在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>

我尝试了很多来解决这个问题。但没有找到任何适当的解决方案。

请帮我修复此问题或建议发布我可以解决的问题。

1 个答案:

答案 0 :(得分:0)

错误消息告诉您:“DSN'MainDB'不存在”。您的连接字符串使用客户端无法找到的DSN。这可能是因为您正在创建用户DSN而不是系统DSN - 如果您的客户端作为服务运行(即在IIS中),则无法读取用户DSN。

如果您使用dbdsn实用程序创建DSN,请确保使用-ws开关而不是-w