关于网友提出的“调用原生dll aspnet 调用 dll 的问题,请大侠们救命啊!”问题疑问,本网通过在网上对“调用原生dll aspnet 调用 dll 的问题,请大侠们救命啊!”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题:调用原生dll aspnet 调用 dll 的问题,请大侠们救命啊!
描述: 我之前的系统用asp写的,没有问题,测试文件内容如下,但改为 asp.net 的就不行了,郁闷中!其中我需要在程序中调用一个dll 组件:
==========test.asp=============
obj = Server.CreateObject("mpaymer.mpaymer")
obj.put_keyfile("C:/Inetpub/wwwroot/mpay_key/12345678901234599990000.key")
Dim str
str = obj.sendRequest("123456789012345", "99990000", "999911", "20060619163000", "1.00", "HKD", "http://201.123.23.21/test/testpaymentsrsp.asp", "http:/201.123.23.21/test/testpaymentfrsp.asp", "111", "https://57.32.14.67/MPay/MerchantPayAsp.do")
rsp = Split(str, ";")
If rsp(0) = 0 Then
Response.Redirect(rsp(1))
Else
Response.Write("Fail, return code=[" & rsp(0) & "]; return msg=[" & rsp(1) & "]")
End If
obj = Nothing
ASP.Net 的测试文件如下:
1、我把dll 添加到“引用”中
=============test.aspx=====================
Imports MPAYMERT1Lib
Dim obj As New mpaymer
obj.put_keyfile("d/mapy/mpay_key/2000012001.key")
Dim Str_message As String
Str_message = obj.sendRequest("200001", "2001", "99991111", "200610251010", "1.00", "HKD", "http://201.123.23.21/test/testpaymentsrsp.asp", "http:/201.123.23.21/test/testpaymentfrsp.asp", "111", "https://57.32.14.67/MPay/MerchantPayAsp.do")
Dim rsp
rsp = Split(Str_message, ";")
If rsp(0) = 0 Then
Response.Redirect(rsp(1))
Else
Response.Write("Fail, return code=[" & rsp(0) & "]; return msg=[" & rsp(1) & "]")
End If
rsp = Nothing
obj = Nothing
========但是出现错误,页面显示如下信息:=========
服务器出现意外情况。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Runtime.InteropServices.COMException: 服务器出现意外情况。
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
堆栈跟踪:
[COMException (0x80010105): 服务器出现意外情况。]
MPAYMERT1Lib.mpaymerClass.sendRequest(String merchant_id, String terminal_id, String ordernum, String datetime, String amt, String currency, String return_url, String fail_url, String customized_data, String url) +0
Mpay.Order.but_submit_Click(Object sender, EventArgs e) in E:\MPay\Mpay_Now\Mpay\Order.aspx.vb:98
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain() +1292
请问各位有什么解决方法,谢谢!
解决方案1: DLL 不支持.NET
解决方案2: Explorer找到Com所在目录,右击选择安全性设置network service这个用户对该目录有读权限。
如果是windows 2003以前的操作系统的话,相应用户是aspnet。
解决方案3: com组件有没有授权
以上介绍了“调用原生dll aspnet 调用 dll 的问题,请大侠们救命啊!”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3657822.html