Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Azure web Services上的经典ASP网站调用C#类库?_C#_Azure_Asp Classic_Com Interop - Fatal编程技术网

如何从Azure web Services上的经典ASP网站调用C#类库?

如何从Azure web Services上的经典ASP网站调用C#类库?,c#,azure,asp-classic,com-interop,C#,Azure,Asp Classic,Com Interop,我有一个Visual Studio 2015解决方案,包含两个项目: 一个经典的ASP网站 C#类库 如何从经典ASP页面中调用C#方法 我将把解决方案部署到Azure应用程序服务 我知道我可以创建一个web API并以这种方式调用它。但我想知道是否还有其他方法可以做到这一点 更新: 我使C#类“COM可见”,并选中了“注册COM互操作”选项,一切都在我的开发机器上正常工作 但是,当我将解决方案发布到Azure Web服务时,它不起作用。经典ASP页面运行正常,但在尝试创建对象时出现以下错误

我有一个Visual Studio 2015解决方案,包含两个项目:

  • 一个经典的ASP网站
  • C#类库
如何从经典ASP页面中调用C#方法

我将把解决方案部署到Azure应用程序服务

我知道我可以创建一个web API并以这种方式调用它。但我想知道是否还有其他方法可以做到这一点

更新:

我使C#类“COM可见”,并选中了“注册COM互操作”选项,一切都在我的开发机器上正常工作

但是,当我将解决方案发布到Azure Web服务时,它不起作用。经典ASP页面运行正常,但在尝试创建对象时出现以下错误:

Server object error 'ASP 0177 : 800401f3'
Server.CreateObject Failed
/index.asp, line 34
800401f3 

似乎“注册COM互操作”在Azure应用程序服务中不起作用。我知道我可以手动创建VM并注册dll,但我更喜欢使用Azure应用程序服务。

我认为您提到的两种方法-Web API(或类似的中间服务)和
服务器。CreateObject
(需要COM可见的.NET程序集)是经典ASP中仅有的两种选择


如果要使用的.NET程序集/库不是COM可见的,并且您没有访问源代码的权限,则可以创建一个包装器—您自己的.NET程序集是COM可见的,带有传递方法—您可以从经典ASP调用程序集,并且您的程序集将所需参数传递给您实际要使用的库,并返回相应方法的结果。

为什么没有Server.CreateObject?使组件COM可见,然后Serv.CealObj.另一个选项,如果不能仅仅用一些更现代的东西来替换你的经典ASP站点,那就是看看它已经访问了数据层。如果链接到.Net库只是从数据库执行简单CRUD的一种方式,那么最好从页面调用数据库的存储过程。我认为Server.CreateObject不能用于Azure Web应用程序。我将尝试使COM可见。谢谢。我想Server.CreateObject无法在Azure Web应用中使用。我将尝试使COM可见。Thanks@CesarDaniel,我不确定,但如果是这样,您仍然可以使用Web API路径,或者在Azure的虚拟机中托管您的ASP应用程序(这将允许在映像中使用Server.CreateObject)。