我正在开发一个在IIS上托管的Web应用程序,并且试图连接到SAP HANA失败。
在下面可以看到错误。
[NullReferenceException: Object reference not set to an instance of an object.]
Sap.Data.Hana.HanaUnmanagedDll.SearchNativeDlls() +343
Sap.Data.Hana.HanaUnmanagedDll..ctor() +17
Sap.Data.Hana.HanaUnmanagedDll.get_Instance() +140
Sap.Data.Hana.HanaConnection..cctor() +28
[TypeInitializationException: The type initializer for 'Sap.Data.Hana.HanaConnection' threw an exception.]
Sap.Data.Hana.HanaConnection..ctor(String connectionString) +0
TestHANAConnectionNoXAF.Controllers.HomeController..ctor() in C:\tmp\TestHANAConnectionNoXAF\TestHANAConnectionNoXAF\Controllers\HomeController.cs:16
[TargetInvocationException: Exception has been thrown by the target of an invocation.]
System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) +0
System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) +139
System.Activator.CreateInstance(Type type, Boolean nonPublic) +105
System.Activator.CreateInstance(Type type) +12
System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType) +75
[InvalidOperationException: An error occurred when trying to create a controller of type 'TestHANAConnectionNoXAF.Controllers.HomeController'. Make sure that the controller has a parameterless public constructor.]
System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType) +242
System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory) +258
System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state) +77
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +1020
System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) +195
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +128
为了调试该应用程序,我创建了一个测试应用程序,该程序不执行任何操作,但使用Sap.Data.Hana.v4.5 dll打开与数据库的连接。
我做了同样的工作,创建了从命令行运行的客户端应用程序。
第一次尝试,我仅使用已安装的HANA驱动程序的64位版本进行了测试。
客户端应用程序运行正常,Web应用程序崩溃并显示与上述相同的错误。
然后我安装了32位版本的HANA驱动程序,结果与以前相同。
注意,我用服务器的dll编译了两个应用程序,目标平台是AnyCPU。
系统规格:
我有另一台服务器,因为在进行此测试时已经部署了Web应用程序,并且它可以正常工作。该服务器与我现在正在操作的服务器规格相同,但Hana驱动程序版本为2.03.106.44071。
在下面,您可以找到我编写的用于连接到SAP HANA的代码。
HanaConnection conn = new HanaConnection("Server=<ip>:<port>;UserID=<user_id>;Password=<password>");
try
{
conn.Open();
conn.Close();
}
catch (HanaException exception)
{
System.Diagnostics.Debug.WriteLine(exception.Errors[0].Source + " : " +
exception.Errors[0].Message + " (" +
exception.Errors[0].NativeError.ToString() + ")",
"Failed to connect");
System.Diagnostics.Debug.WriteLine(exception);
}
可能是什么问题?
提前谢谢,
萨拉