- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题:将我的应用程序部署到生产数据库时,出现以下错误:
Could not load file or assembly 'System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified.at ConsoleApplication2.Database.DBConnect.Initialize(String username, String password, String IP)at ConsoleApplication2.Database.DBConnect..ctor(String username, String password, String IP) in C:\Users\Vincent\Documents\Visual Studio 2008\Projects\ConsoleApplication2\ConsoleApplication2\DBConnect.cs:line 26at ConsoleApplication2.Database..ctor() in C:\Users\Vincent\Documents\Visual Studio 2008\Projects\ConsoleApplication2\ConsoleApplication2\Database.cs:line 20at ConsoleApplication2.Main..ctor() in C:\Users\Vincent\Documents\Visual Studio 2008\Projects\ConsoleApplication2\ConsoleApplication2\Main.cs:line 16
我所知道的:实际上并不是 System.Data.dll 有问题。
自从我开始制作一个干净的控制台应用程序以来。首先只使用 Console.write()。当它起作用时,我创建了一个新类并做了一些常规计算(也没有问题),然后我决定使用 MySQL.data.MySqlClient 创建一个 MySQL 连接;从 Mysql.data.dll 中,这是错误再次发生的时候。我从the mysql site获取了dll .
奇怪的部分:这个 dll 一直在我的计算机(我在其上创建了应用程序)和 2 个不同的服务器(其中一个服务器是我设置的只是为了测试这些应用程序以查看是否会遇到相同的问题)上运行。
一些规范:我的电脑运行 Windows 7 32 位。生产数据库运行 Windows 2003 Service Pack 2,测试服务器和我尝试过的其他服务器也是如此。
我做过的其他一些事情:我创建了一个安装程序(.msi 和 .exe),用于安装 .net 3.5 service pack 1 和 .net 2.0 service pack 2.0 和 .net 3.0 service pack 2。我觉得很奇怪,它会安装所有这些 .net 框架,但要安装 3.5,你需要 2.0,这样才有意义(但不确定为什么安装 3.0)
我还尝试在未安装 MySQL 连接器的情况下运行该应用程序(因此只需将 mysql.data.dll 放在应用程序文件夹中),并且我尝试在安装了 MySQL 连接器的情况下运行该应用程序(因此应用程序文件夹中没有 dll)
我尝试将我的.net框架复制到生产数据库(这是在我知道它是关于mysql.data.dll而不是system.dll或system.data.dll之前)
我已经尝试了我能想到的所有方法,但没有任何效果,它在所有其他计算机/数据库上都可以正常工作,只是在我们想要部署应用程序的那台计算机/数据库上不起作用......
发生错误的代码:
public DBConnect(string username, string password, string IP)
{
Console.WriteLine("dbconnect contsrutctor");
Initialize(username, password, IP);
}
private void Initialize(string username, string password, string IP)
{
Console.WriteLine("initializing strings");
string server = IP;
string database = "";
string connectionString;
connectionString = "SERVER=" + server + ";" + "DATABASE=" +
database + ";" + "UID=" + username + ";" + "PASSWORD=" + password + ";";
Console.WriteLine("initializing mysqlconnection");
//MySqlConnection connection = new MySqlConnection(connectionString);
}
我已评论该行:
MySqlConnection connection = new MySqlConnection(connectionString);
应用程序运行时没有错误,当我取消注释时,错误再次发生。
编辑
我注意到一件奇怪的事情:当它到达创建 MySqlConnection 的方法(而不是行)时,就会抛出错误。如果您查看上面的代码示例,第一个 Console.WriteLine("initializing strings");
甚至不会显示在我的控制台中。我觉得这很奇怪,因为您希望在 MySqlConnection connection = new MySqlConnection(connectionString);
行上抛出错误,而不是在方法的开头。
编辑2我以为我找到了答案,所以我发布了它:
"Though i have checked the system.data.dll and system.dll versions andfile paths (which were exactly the same on all 3 machines I did findthe problem to be with these files.
In my application I've set the "copy local" to true and after this itworked.
I find this extremely odd since I've tried replacing the dll's on theproduction server with my own and this did not work. also just placingthe dll's in the application folder did not help either. I had tospecifically specify the application to copy the dll's it self.
anyway it's working properly now although I'm not quite convinced ilike this solution...
I definitely do not like this because i need to do this to half of thedll's (yes half not all just about half of them).
any better options are still welcome."
但是我没有提到它在我的测试应用程序上有效,这次真正的应用程序找不到 system.transactions 。所以它仍然不是正确的解决方案,尽管它确实清除了有关 system.data.dll 的错误,但由于不同文件的类似错误,我仍然无法运行该程序。
因此,由于我仍然遇到相同的错误,但在不同的文件上(我无法将“复制本地”设置更改为 true,因为它没有被我引用),我已删除答案并将其放在此处作为编辑,因为问题仍然没有解决。
编辑3我运行了 Fuslogvw.exe,结果如下:
*** Assembly Binder Log Entry (12/5/2013 @ 8:43:13 AM) ***
The operation failed. Bind result: hr = 0x80070002. The system cannotfind the file specified.
Assembly manager loaded from:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll Runningunder executable C:\Program Files\Custommate\email sorteerservice\EmailSorteerService.exe--- A detailed error log follows.
=== Pre-bind state information === LOG: User = NAVMATE\Administrator LOG: DisplayName = System, Version=2.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089 (Fully-specified) LOG: Appbase =file:///C:/Program Files/Custommate/email sorteer service/ LOG:Initial PrivatePath = NULL LOG: Dynamic Base = NULL LOG: Cache Base =NULL LOG: AppName = NULL Calling assembly : EmailSorteerService,Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.=== LOG: This bind starts in default load context. LOG: No application configuration file found. LOG: Using machine configuration file fromC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config.LOG: Post-policy reference: System, Version=2.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089 LOG: GAC Lookup was unsuccessful. LOG:Attempting download of new URLfile:///C:/ProgramFiles/Custommate/email sorteer service/System.DLL. LOG: Attemptingdownload of new URLfile:///C:/Program Files/Custommate/email sorteerservice/System/System.DLL. LOG: Attempting download of new URLfile:///C:/Program Files/Custommate/email sorteer service/System.EXE.LOG: Attempting download of new URLfile:///C:/Program Files/Custommate/email sorteer service/System/System.EXE. LOG: Allprobing URLs attempted and failed.
这意味着它试图从我运行应用程序的文件夹中加载 dll,我觉得这很奇怪,因为我不知道是什么原因造成的。 (我已确保复制本地设置为 false,因此这不会成为问题)
所以新问题:我如何确保它从正确的位置加载?
最佳答案
一进入方法就抛出异常的原因很简单——JIT编译器只需要解析引用即可。 MySqlConnection 需要 System.Data,并且它是第一个执行此操作的方法,因此此时会引发异常。
就调试问题而言,目标计算机上似乎未正确安装 .NET 框架。你应该尝试How to enable assembly bind failure logging (Fusion) in .NET看看 .NET 实际上在哪里尝试找到该库,以及为什么它会丢弃它找到的任何库。
如果它不能解决您的问题,我会尝试卸载并重新安装 .NET Framework 2.0,然后再安装 3.5。
“复制本地”之所以有效,是因为应用程序不会尝试从全局程序集缓存加载 DLL,而是从应用程序的可执行目录加载。然而,您真正的问题是它在 GAC 中找不到正确的 DLL。
如果 Fusion 显示 MySQL 库尝试加载错误版本的 System.Data,您可以使用应用程序 list 强制它加载不同版本(希望应该兼容)。您可以在此处阅读有关应用程序 list 的信息 - http://msdn.microsoft.com/en-us/library/aa374191(VS.85).aspx
祝你好运。
关于c# - 在生产数据库上部署应用程序时无法加载文件或程序集“System.Data”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20211526/
只是想知道这些结构之间有什么区别(text、data、rodata、bss 等)在链接描述文件中: .data : { *(.data) } .data : { *(.data*) }
Data 定义为其核心功能之一 gfoldl : gfoldl :: (Data a) => (forall d b. Data d => c (d -> b) -> d -> c b)
以下之间有什么区别:data-sly-use、data-sly-resource、data-sly-include 和 数据-sly-模板?我正在阅读 Sightly AEM 上的文档,我非常困惑。
我有一个 Spring Boot、Spring Data JPA (hibernate) Web 应用程序,并且想引入文本搜索功能。 我理解以下内容 hibernate search 或 spring
我不知道我的代码有什么问题。我读了其他有同样问题的人的一些问题,但没有找到答案。当我尝试编译时出现以下错误: ||In function 'main':| |35|error: expected ex
我不太确定为什么会收到此错误或其含义。我的数据框称为“数据”。 library(dplyr) data %>% filter(Info==1, Male==1) %>% lm(CFL_
我一直在 GitHub 等更现代的网站上看到这些属性,它们似乎总是与自定义的弹出窗口一致,如 title 属性。 Option 1 Option 2 Option 3 Option 4 我在 HTML
如何用 iCloud Core Data 替换我现有的 Core Data?这是我的持久商店协调员: lazy var persistentStoreCoordinator: NSPersistent
我一直在 GitHub 等更现代的网站上看到这些属性,它们似乎总是与自定义的弹出窗口一致,如 title 属性。 Option 1 Option 2 Option 3 Option 4 我在 HTML
我正在通过 this project 在 Android 上摆弄 node.js ,我需要一种方法将 js 文件部署到私有(private)目录(以隐藏源代码,防止用户篡改),该目录也物理存在于文件系
大家好我有点沮丧,所以我希望得到一些帮助。我的项目在 SwiftUI 中。我想使用图像选择器将图像保存到 Core Data。我实现了让 ImagePicker 工作,但我正在努力转换 Image -
我有以下数据和代码: mydf grp categ condition value 1 A X P 2 2 B X P 5
我一直在努力解决这个问题,但我根本找不到任何解决问题的方法。希望这里有人可以提供帮助。 我正在尝试为具有以下结构的某些数据创建个人选择矩阵: # A tibble: 2,152 x 32 a
我了解 Data.Map.Lazy 和 Data.Map.Strict 是不同的。但是,当您导入 Data.Map 时,您究竟导入了什么:严格的、惰性的还是两者的组合? 最佳答案 懒人。看着docs
我正在开发一个 C 程序,用于从 BerkeleyDB DBTree 数据库中提取数据值与特定模式匹配的记录。我创建数据库,打开它,将键的 DBT 和数据的另一个 DBT 清零,将 DBT 标志设置为
所以我有以下成员(member)历史表 User_ID | Start date | End Date | Type(0-7) | ---------------------------
随着最近推出的包dataframe ,我认为是时候正确地对各种数据结构进行基准测试,并突出每种数据结构的优势。我不是每个人的不同优势的专家,所以我的问题是,我们应该如何对它们进行基准测试。 我尝试过的
我有来自 API 的数据,但无法将数组中的数据设置为 vue.js 中的 this.data这是来自 API 的数据(JSON) 你能告诉我这个语法吗 {"id":1613, "name_org":"
在 Vue.js到目前为止,我已经找到了两种定义数据的方法:data: {} 和 data() { return; }. data: { defaultLayout: 'default' }
我正在研究Spring Data Rest Services,并在自定义拦截器中遇到一些问题。之前我使用spring-data-rest-webmvc 2.2.0并以以下方式添加了拦截器。 publi
我是一名优秀的程序员,十分优秀!