类型或命名空间名称'命名空间'System'(你是否缺少一个汇编参考?)- c# ASP.NET

本文关键字:命名空间 参考 一个 汇编 NET ASP System 类型 是否 | 更新日期: 2023-09-27 18:10:48

我们有一个c# ASP。使用系统的。NET Web应用程序。交易名称空间。

using System.Transactions;

这在本地开发时工作得很好-我们只需要先通过网站->添加引用…

问题是在部署到web主机后(通过FTP复制),主机不知道这个引用。

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS0234: The type or namespace name 'Transactions' does not exist in the namespace 'System' (are you missing an assembly reference?)

在Visual Web Developer Express 2010中工作,我们没有内置的References文件夹。我看到了这个解决方案:https://stackoverflow.com/a/13035466/2178080建议(但不推荐)将dll复制到应用程序文件夹。

我对部署ASP有点陌生,不知道如何包括系统。事务库,以便主机可以找到引用。有人遇到过这个问题吗?

Edit:我们采用了将dll与应用程序一起复制到站点的路线。执行此操作的步骤:

  1. 从本地系统拷贝system. transactions .dll。
  2. 粘贴到Bin文件夹。
  3. 在此程序集中引用的对象现在必须使用完全限定名。

由于这个解决方案被列为不推荐,我仍然愿意考虑其他解决方案。

Edit2: Grant和Chris帮助我理解我是在处理一个网站而不是一个Web应用程序。Grant帮助解决了网站的具体问题。

类型或命名空间名称'命名空间'System'(你是否缺少一个汇编参考?)- c# ASP.NET

您的问题是由于发布的网站没有带来system . actions. DLL,这指向"Copy Local"被设置为False,因此DLL没有复制到bin文件夹。

转到References -> System.Transactions,并确保在此引用的属性中"复制本地"设置为True

检查IIS中的目标框架,确保它被设置为您正在编译代码的同一版本。net。如果您使用的是IIS 7+,它有应用程序池,请确保运行应用程序的池是相同版本的。net。