用webservicehelloworld.asmx<%@ WebService Language="C#" Class="HelloWorld" %>
using System;
using System.Web.Services;[WebService(Namespace="http://127.0.0.1/")]
public class HelloWorld
{
[WebMethod(Description="Say Hello to u")]
public string SayHello()
{
return "hello";
}
}用wsdl和csc编成dll放到/bin目录下在aspx里就可以用HelloWorld h = new HelloWorld();
string s = h.Sayhello();其它调用类似
using System;
using System.Web.Services;[WebService(Namespace="http://127.0.0.1/")]
public class HelloWorld
{
[WebMethod(Description="Say Hello to u")]
public string SayHello()
{
return "hello";
}
}用wsdl和csc编成dll放到/bin目录下在aspx里就可以用HelloWorld h = new HelloWorld();
string s = h.Sayhello();其它调用类似
谢啦
coldljy 推荐的文章中的Exposing Microsoft .NET Framework components to COM clients 一节介绍了具体的方法,之后你可以从COM+中倒出代理包或直接使用这些组件了(强名之后的组件在ASP的使用上和原来的老组件没有太大分别).
这是目前混和环境中的一种不错的办法,用这种方式的组件得益于新的组件结构和编程的方便,但事实上,性能上它可能低于你原来的用VB或VC编写的组件.
如果可以考虑升级ASP到ASP+,ASP的引擎性能低于现在新的ASP+,而所有调用的组件都是以所在的引擎作为宿主的.
我也是用C#写的一个UserControl控件,想直接在WebForm中调用 。但是结果很让人失望:基本不行
即使行,也得在Client安装 . Net FrameWork
在ASP中调用如下:
<object id="Control1" classid="http:myControl.dll#mycontrol.Control1"
height="500" width="600"></object>
并在iis中的将相关虚拟目录的执行权限设置为:纯脚本。
"while a winform control is downloaded from the server, runs directly on the client machine and draws to the screen using GDI+ instead of HTML" Client的WinForm Control必须有restricted security environment,比如访问网络、和本地文件等。由于.Net FrameWork本身更严格的安全要求,所以基于 .Net FrameWork的Control比ActiveX也有更高的安全要求。因而,新一带MS的开发平台不鼓励这样的结构设计。 我们习惯把有界面的COM称为Activex 而无界面的称为COM server.
.Net 对COM仍是自持的,但你必须做一些处理,比如:Tlbexp,regasm命令等
但要想想其它工具生成OCX,然后直接能加入到ToolBox中拖放到wevform上,在.Net开发的UserControl已经是不能的了
到http://gotdotnet.com/team/windowsforms/iesourcing.aspx
有比较详细的介绍 我对我了解的结果很失望
我不得不用其他工具从新编写我的UserControl供ASP./Net调用
毕竟,要求每个 Client 安装.Net FrameWork是苛刻的
to ccBoy(小气的神):用COM+使我最開始用的一個方法,結果不理想;
to wenzm(风子驴):我用你的方法試過,因爲以前我寫的Asp程序,調用外部的的組件時就是用這樣的方法,可惜現在不能實現我說的問題;
to triout(Daview):如果是.net正式版的話,可以用這個方法在VB等編輯器裏實現,應該說在Asp裏是可以的,不過我是幾次,結果很令人失望;
to hqywork(华奇英):能夠説明白點,謝了先。
height="500" width="600"></object>
这样调用,而且Client必须装.net FrameWork(20.8M)
2. 用managed C++ extension做一个managed->unmanaged DLL包装,然后怎么调都行了。