vs2017 asp.net程序在iis express运行正常,在iis里就会报错!

时间:2022-09-29 14:01:11
我的程序需要调用万得资讯系统的量化接口,接口的调用方法如下:

using WAPIWrapperCSharp;

WindAPI w = new WindAPI();
w.start();
WindData wd = w.wsd(StockCode, "close", StartDate, EndDate);

w.start()是用来验证登录的Wind方法(此方法封装在万得公司提供的量化接口相关的ocx中),方法的定义如下:
vs2017 asp.net程序在iis express运行正常,在iis里就会报错!

万得量化接口主要包括2个文件:WAPIWrapperCSharp.dll(需要加载引用) 和 WindMatlab.ocx
用户接口在WAPIWrapperCSharp.dll,dll再调用ocx里的方法。比如w.start()在WAPIWrapperCSharp.dll如下(万得提供了公开的dll源码):

WindDataCOM wdc = null;
public WindAPI()
        {
            try
            {
                wdc = new WindDataCOM();
                wdc.enableAsyn(1);
                wdc.stateChanged += new _DWindDataCOMEvents_stateChangedEventHandler(ReqHandler);
            }
            catch{
                throw new Exception("WindMatlab.ocx组件未注册");
            }
        }

//Wind接口启动函数
public int start(string option1 = "", string option2 = "", int timeout = 5000)
        {
            return wdc.start_csharp(option1, option2, timeout);
        }

而WindDataCOM这个类则是封装在WindMatlab.ocx里面的,内容看不到。

我的asp.net程序在使用iis express做debug运行时,所有功能完全正常,但如果切换到iis或发布到iis,一运行w.start(),就会失败(返回0代表登录正常,其他返回值代表失败)。

疑问如下:
1. 接口涉及到的WindMatlab.ocx为服务器端组件,是否因为iis不允许服务器端的ocx运行造成登录失败?
2. iis比iis express多了哪些限制?
3. 既然iis express运行完整没有问题,是否可以用iis express代替iis作为生产环境?
(iis已经配置为使用administrator访问权限)
4. 如果解决此问题?

请有相关经验的高手支招。谢谢!

4 个解决方案

#1


感叹现在vs就有2017了 。

这个问题我也不懂, 我说一个遇到的同样是 本地 express iis 可以 , 到服务器就不可以, 提示的是 安全方面 报错了。

实现的功能是用 wcf 服务上传一个图片 的 一个exe小程序 。 当时本地可以,把程序传给别人就不行了。

本地 iis 模拟的权限要比 发布的iis高。

后来怎么百度了会就改了,具体怎么改的还忘了, 记得是在 配置文件里面做了调整。

iis问题多是配置文件的限制修改吧, 楼主再查查问题所在呢,相信会解决的

#2


看到这种问题,一般都是权限问题
然后看到你有winAPI,基本确定你就是权限问题,你可以看哪个IIS_XXX账户的访问权限,那个权限默认是很低的,开高了容易被攻击

#3


错误截图那。

#4


引用 3 楼 qiaohuyue 的回复:
错误截图那。


截图在此:

vs2017 asp.net程序在iis express运行正常,在iis里就会报错!

#1


感叹现在vs就有2017了 。

这个问题我也不懂, 我说一个遇到的同样是 本地 express iis 可以 , 到服务器就不可以, 提示的是 安全方面 报错了。

实现的功能是用 wcf 服务上传一个图片 的 一个exe小程序 。 当时本地可以,把程序传给别人就不行了。

本地 iis 模拟的权限要比 发布的iis高。

后来怎么百度了会就改了,具体怎么改的还忘了, 记得是在 配置文件里面做了调整。

iis问题多是配置文件的限制修改吧, 楼主再查查问题所在呢,相信会解决的

#2


看到这种问题,一般都是权限问题
然后看到你有winAPI,基本确定你就是权限问题,你可以看哪个IIS_XXX账户的访问权限,那个权限默认是很低的,开高了容易被攻击

#3


错误截图那。

#4


引用 3 楼 qiaohuyue 的回复:
错误截图那。


截图在此:

vs2017 asp.net程序在iis express运行正常,在iis里就会报错!