20 个解决方案
#1
asp是vs6.0
#2
用webservice
helloworld.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();
其它调用类似
helloworld.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();
其它调用类似
#3
http://www.csharphelp.com/archives/archive257.html
#4
你是说的在ASP里还是在ASP+里???
#5
是在Asp里,not Asp+,请问给位高手,在Asp里怎么调用阿
谢啦
谢啦
#6
dotNET的互操作性非常好.ASP中是可以调用的.不过有一点差别,ASP中可能不能直接调用C#编写的组件,但可以通过COM+环境来做到这一点.
coldljy 推荐的文章中的Exposing Microsoft .NET Framework components to COM clients 一节介绍了具体的方法,之后你可以从COM+中倒出代理包或直接使用这些组件了(强名之后的组件在ASP的使用上和原来的老组件没有太大分别).
这是目前混和环境中的一种不错的办法,用这种方式的组件得益于新的组件结构和编程的方便,但事实上,性能上它可能低于你原来的用VB或VC编写的组件.
如果可以考虑升级ASP到ASP+,ASP的引擎性能低于现在新的ASP+,而所有调用的组件都是以所在的引擎作为宿主的.
coldljy 推荐的文章中的Exposing Microsoft .NET Framework components to COM clients 一节介绍了具体的方法,之后你可以从COM+中倒出代理包或直接使用这些组件了(强名之后的组件在ASP的使用上和原来的老组件没有太大分别).
这是目前混和环境中的一种不错的办法,用这种方式的组件得益于新的组件结构和编程的方便,但事实上,性能上它可能低于你原来的用VB或VC编写的组件.
如果可以考虑升级ASP到ASP+,ASP的引擎性能低于现在新的ASP+,而所有调用的组件都是以所在的引擎作为宿主的.
#7
你问的问题很好,在.net还没有盛行的今天,应该考虑一下与asp的互操作性
#8
我被你说的问题折磨了几个星期!
我也是用C#写的一个UserControl控件,想直接在WebForm中调用 。但是结果很让人失望:基本不行
即使行,也得在Client安装 . Net FrameWork
在ASP中调用如下:
<object id="Control1" classid="http:myControl.dll#mycontrol.Control1"
height="500" width="600"></object>
并在iis中的将相关虚拟目录的执行权限设置为:纯脚本。
我也是用C#写的一个UserControl控件,想直接在WebForm中调用 。但是结果很让人失望:基本不行
即使行,也得在Client安装 . Net FrameWork
在ASP中调用如下:
<object id="Control1" classid="http:myControl.dll#mycontrol.Control1"
height="500" width="600"></object>
并在iis中的将相关虚拟目录的执行权限设置为:纯脚本。
#9
这个问题也折磨了我好几天,因为时间紧张,我后来是把用asp+界面替换了原有了asp;这几天我已经相关项目作完,腾出了点时间来研究这个问题,希望能跟大家好好交流。
#10
为什么不能生成server side控件呢? 因为所有在IE中能显示的,都必须能被Html解释,就和 所有的asp.net webcontrol 一样。因为一个WinForm Control 是没办法解析成HTML的
"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已经是不能的了
"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已经是不能的了
#11
对了,如果确实要在ASP中调用UserControl,你可以
到http://gotdotnet.com/team/windowsforms/iesourcing.aspx
有比较详细的介绍
我对我了解的结果很失望
我不得不用其他工具从新编写我的UserControl供ASP./Net调用
毕竟,要求每个 Client 安装.Net FrameWork是苛刻的
到http://gotdotnet.com/team/windowsforms/iesourcing.aspx
有比较详细的介绍
我对我了解的结果很失望
我不得不用其他工具从新编写我的UserControl供ASP./Net调用
毕竟,要求每个 Client 安装.Net FrameWork是苛刻的
#12
可以,通过引用该NAMESPACE
#13
关注,学习,一起进步!
#14
可以,但你在ASP服务器上有执行CGI的权限,要么ASP是不会让你执行的。
#15
謝謝各位高手的幫助,但能否説明白點。
to ccBoy(小气的神):用COM+使我最開始用的一個方法,結果不理想;
to wenzm(风子驴):我用你的方法試過,因爲以前我寫的Asp程序,調用外部的的組件時就是用這樣的方法,可惜現在不能實現我說的問題;
to triout(Daview):如果是.net正式版的話,可以用這個方法在VB等編輯器裏實現,應該說在Asp裏是可以的,不過我是幾次,結果很令人失望;
to hqywork(华奇英):能夠説明白點,謝了先。
to ccBoy(小气的神):用COM+使我最開始用的一個方法,結果不理想;
to wenzm(风子驴):我用你的方法試過,因爲以前我寫的Asp程序,調用外部的的組件時就是用這樣的方法,可惜現在不能實現我說的問題;
to triout(Daview):如果是.net正式版的話,可以用這個方法在VB等編輯器裏實現,應該說在Asp裏是可以的,不過我是幾次,結果很令人失望;
to hqywork(华奇英):能夠説明白點,謝了先。
#16
如果你的组件是.Net 写的,只能 <object id="Control1" classid="http:myControl.dll#mycontrol.Control1"
height="500" width="600"></object>
这样调用,而且Client必须装.net FrameWork(20.8M)
height="500" width="600"></object>
这样调用,而且Client必须装.net FrameWork(20.8M)
#17
关注……
#18
關注﹐學習
#19
to wenzm(风子驴):你的方法確實是可行的,不過目前要求所有client都安裝.net FrameWork不是很現實;
#20
1. 其实不一定要COM+的,用tlbexp生成一个tlb,然后就可以当COM组件用了。
2. 用managed C++ extension做一个managed->unmanaged DLL包装,然后怎么调都行了。
2. 用managed C++ extension做一个managed->unmanaged DLL包装,然后怎么调都行了。
#21
#1
asp是vs6.0
#2
用webservice
helloworld.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();
其它调用类似
helloworld.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();
其它调用类似
#3
http://www.csharphelp.com/archives/archive257.html
#4
你是说的在ASP里还是在ASP+里???
#5
是在Asp里,not Asp+,请问给位高手,在Asp里怎么调用阿
谢啦
谢啦
#6
dotNET的互操作性非常好.ASP中是可以调用的.不过有一点差别,ASP中可能不能直接调用C#编写的组件,但可以通过COM+环境来做到这一点.
coldljy 推荐的文章中的Exposing Microsoft .NET Framework components to COM clients 一节介绍了具体的方法,之后你可以从COM+中倒出代理包或直接使用这些组件了(强名之后的组件在ASP的使用上和原来的老组件没有太大分别).
这是目前混和环境中的一种不错的办法,用这种方式的组件得益于新的组件结构和编程的方便,但事实上,性能上它可能低于你原来的用VB或VC编写的组件.
如果可以考虑升级ASP到ASP+,ASP的引擎性能低于现在新的ASP+,而所有调用的组件都是以所在的引擎作为宿主的.
coldljy 推荐的文章中的Exposing Microsoft .NET Framework components to COM clients 一节介绍了具体的方法,之后你可以从COM+中倒出代理包或直接使用这些组件了(强名之后的组件在ASP的使用上和原来的老组件没有太大分别).
这是目前混和环境中的一种不错的办法,用这种方式的组件得益于新的组件结构和编程的方便,但事实上,性能上它可能低于你原来的用VB或VC编写的组件.
如果可以考虑升级ASP到ASP+,ASP的引擎性能低于现在新的ASP+,而所有调用的组件都是以所在的引擎作为宿主的.
#7
你问的问题很好,在.net还没有盛行的今天,应该考虑一下与asp的互操作性
#8
我被你说的问题折磨了几个星期!
我也是用C#写的一个UserControl控件,想直接在WebForm中调用 。但是结果很让人失望:基本不行
即使行,也得在Client安装 . Net FrameWork
在ASP中调用如下:
<object id="Control1" classid="http:myControl.dll#mycontrol.Control1"
height="500" width="600"></object>
并在iis中的将相关虚拟目录的执行权限设置为:纯脚本。
我也是用C#写的一个UserControl控件,想直接在WebForm中调用 。但是结果很让人失望:基本不行
即使行,也得在Client安装 . Net FrameWork
在ASP中调用如下:
<object id="Control1" classid="http:myControl.dll#mycontrol.Control1"
height="500" width="600"></object>
并在iis中的将相关虚拟目录的执行权限设置为:纯脚本。
#9
这个问题也折磨了我好几天,因为时间紧张,我后来是把用asp+界面替换了原有了asp;这几天我已经相关项目作完,腾出了点时间来研究这个问题,希望能跟大家好好交流。
#10
为什么不能生成server side控件呢? 因为所有在IE中能显示的,都必须能被Html解释,就和 所有的asp.net webcontrol 一样。因为一个WinForm Control 是没办法解析成HTML的
"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已经是不能的了
"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已经是不能的了
#11
对了,如果确实要在ASP中调用UserControl,你可以
到http://gotdotnet.com/team/windowsforms/iesourcing.aspx
有比较详细的介绍
我对我了解的结果很失望
我不得不用其他工具从新编写我的UserControl供ASP./Net调用
毕竟,要求每个 Client 安装.Net FrameWork是苛刻的
到http://gotdotnet.com/team/windowsforms/iesourcing.aspx
有比较详细的介绍
我对我了解的结果很失望
我不得不用其他工具从新编写我的UserControl供ASP./Net调用
毕竟,要求每个 Client 安装.Net FrameWork是苛刻的
#12
可以,通过引用该NAMESPACE
#13
关注,学习,一起进步!
#14
可以,但你在ASP服务器上有执行CGI的权限,要么ASP是不会让你执行的。
#15
謝謝各位高手的幫助,但能否説明白點。
to ccBoy(小气的神):用COM+使我最開始用的一個方法,結果不理想;
to wenzm(风子驴):我用你的方法試過,因爲以前我寫的Asp程序,調用外部的的組件時就是用這樣的方法,可惜現在不能實現我說的問題;
to triout(Daview):如果是.net正式版的話,可以用這個方法在VB等編輯器裏實現,應該說在Asp裏是可以的,不過我是幾次,結果很令人失望;
to hqywork(华奇英):能夠説明白點,謝了先。
to ccBoy(小气的神):用COM+使我最開始用的一個方法,結果不理想;
to wenzm(风子驴):我用你的方法試過,因爲以前我寫的Asp程序,調用外部的的組件時就是用這樣的方法,可惜現在不能實現我說的問題;
to triout(Daview):如果是.net正式版的話,可以用這個方法在VB等編輯器裏實現,應該說在Asp裏是可以的,不過我是幾次,結果很令人失望;
to hqywork(华奇英):能夠説明白點,謝了先。
#16
如果你的组件是.Net 写的,只能 <object id="Control1" classid="http:myControl.dll#mycontrol.Control1"
height="500" width="600"></object>
这样调用,而且Client必须装.net FrameWork(20.8M)
height="500" width="600"></object>
这样调用,而且Client必须装.net FrameWork(20.8M)
#17
关注……
#18
關注﹐學習
#19
to wenzm(风子驴):你的方法確實是可行的,不過目前要求所有client都安裝.net FrameWork不是很現實;
#20
1. 其实不一定要COM+的,用tlbexp生成一个tlb,然后就可以当COM组件用了。
2. 用managed C++ extension做一个managed->unmanaged DLL包装,然后怎么调都行了。
2. 用managed C++ extension做一个managed->unmanaged DLL包装,然后怎么调都行了。