sap - Sap.Data.SQLAnywhere.SAException:使用 .NET 连接到 Sybase SQL Anywhere 时找不到语言资源文件 (dblgen17.dll)
问题描述
我正在尝试使用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包含在此处的SAP SQL Anywhere 数据库客户端中,并已添加到我的项目中,其中Build Action设置为None,Copy to Output Directory设置为Copy Always。
正如预期的那样,“丢失的文件” dblgen17.dll与Sap.Data.SQLAnywhere.v4.5.dll一起发布后可以在/site/wwwroot/bin中找到。
为什么它仍然说它不见了?我的谷歌结果告诉我它可能与 PATH 变量有关,但由于这是一个 Azure 函数,我不确定在这里做什么。我还注意到了一个额外的奇怪行为,如下所述。
有时,偶尔在重新发布未更改的代码时,我也会突然收到以下错误消息:
[Error] Sap.Data.SQLAnywhere.SAException (0x80004005)
at Sap.Data.SQLAnywhere.SAConnection.Open()
at SBCTest.SybaseTest.<Run>d__3.MoveNext()
如何让我的代码识别文件,并希望连接成功?
解决方案
就我而言,它是通过重置 IIS 来解决的,这可以通过 cmd 使用iisreset命令来完成。
推荐阅读
- sql - 自加入无重复
- python - 单词列表中最长的单词链
- sapui5 - 加载组件更改失败
- php - Symfony 3.4 + FOSUserBundle 为新的自定义字段添加错误消息
- netlogo - NetLogo - 我如何获得乌龟面临的所有补丁?
- c# - 在 Microsoft 元目录服务中保存属性值时出现 InvalidOperationException
- java - 不明白如何为 Firebase 实时数据库中的每个键执行操作
- monitoring - 在 grafana 仪表板上显示应用程序版本
- android - 使用 Unity 编译后是否可以读取 apk 文件脚本?
- java - Mandelbrot Set 在 JavaFX 中使用自己的 Complex 类