Sap.Data.SQLAnywhere.SAException:使用.NET连接到Sybase SQL Anywhere时找不到语言资源文件(dblgen17.dll)

问题描述 投票:0回答:1

我正在尝试使用Sap.Data.SQLAnywhere建立与Sybase数据库的连接。使用SQL Anywhere客户端可以从工作站完美地运行,但是在Azure函数中运行代码时遇到了一些麻烦。

这是我的简单代码的开头:

using System.Linq;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using System.Data.SqlClient;
using Microsoft.Extensions.Logging;
using System;
using Sap.Data.SQLAnywhere;

namespace SBCTest
{
    public static class SybaseTest
    {
        static string DB_CS_SOURCE = "Host=myIP;UID=myUID;PWD=myPWD;Data Source=myDb;";         static int bulkSize = 5000;

        [FunctionName("SybaseTest")]
        public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)]HttpRequestMessage req, ILogger log)
        {
            try
            {
                var dbSourceCon = new SAConnection()
                dbSourceCon.ConnectionString = DB_CS_SOURCE;
                dbSourceCon.Open();

 //etc... etc...

我面临的问题,似乎无法解决,是运行该应用程序时出现的以下错误:

[Error] System.TypeInitializationException: The type initializer for 'Sap.Data.SQLAnywhere.SAConnection' threw an exception. ---> Sap.Data.SQLAnywhere.SAException: Cannot find the language resource file (dblgen17.dll).
   at Sap.Data.SQLAnywhere.SAUnmanagedDll..ctor()
   at Sap.Data.SQLAnywhere.SAUnmanagedDll.get_Instance()
   at Sap.Data.SQLAnywhere.SAConnection..cctor()
   --- End of inner exception stack trace ---
   at Sap.Data.SQLAnywhere.SAConnection..ctor()
   at SBCTest.SybaseTest.<Run>d__3.MoveNext()

dblgen17.dll包含在here中的SAP SQL Anywhere数据库客户端中,并且已添加到我的项目中,并且Build Action设置为,并且复制到输出目录设置为始终复制

“丢失的文件” dblgen17.dll可以按预期与Sap.Data.SQLAnywhere.v4.5.dll]一起在/ site / wwwroot / bin中找到。 >。

为什么它仍然说它丢失了?我的Google结果表明,它可能与PATH变量有关,但是由于这是Azure函数,因此我不确定在此做什么。我还注意到了另外一种奇怪的行为,如下所述。

有时,在重新发布未更改的代码时,偶尔也会突然收到此错误消息:

[Error] Sap.Data.SQLAnywhere.SAException (0x80004005)
at Sap.Data.SQLAnywhere.SAConnection.Open()
at SBCTest.SybaseTest.<Run>d__3.MoveNext()

如何使我的代码识别文件,并希望成功连接?

我正在尝试使用Sap.Data.SQLAnywhere建立与Sybase数据库的连接。使用SQL Anywhere客户端可以从工作站完美地运行,但是在运行代码时遇到了一些麻烦...

sap azure-functions sybase sqlanywhere
1个回答
0
投票

就我而言,它是通过重置IIS解决的,可以使用iisreset

© www.soinside.com 2019 - 2024. All rights reserved.