1

我有一个带有 2 个模块的 ASP.Net 应用程序:

  1. 服务器模块,作为 Windows 服务运行。
  2. 安装在 IIS 上的 Web 模块。

在过去的几年里,上述工作完美(一直在工作)。当我必须将应用程序移动到新的 Windows 2008 服务器时,问题刚刚发生。

我所做的是:

  1. 将服务器模块上的目标从 AnyCPU 更改为 x86,然后在 BP 机器上对其进行测试,一切正常。
  2. 将服务器和 Web 模块移至 Win 2008 服务器。
  3. 安装服务并运行它,到目前为止一切顺利。
  4. 从网站上,我运行了一个查询,该查询因空指针异常而失败,如下所示:

在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg)

这就是我开始旋转的地方。我与服务交谈的代码与此类似:

<application name="SHR">
    <client url="tcp://localhost:8039">
        <wellknown type="Package.dal.MyDAO, MyPackage" url="tcp://localhost:8039/SHR/MyDAO.rem"/>           
    </client>
    <channels>
        <channel ref="tcp client">
            <clientProviders>
                <formatter ref="binary" includeVersions="false"/>
                <provider type="server, server"/>
            </clientProviders>
        </channel>
    </channels>
</application>

我运行了 sql profiler,我可以看到我试图调用的类方法确实完全执行,但由于某些原因,它没有返回任何内容。该类本身正确实例化,并且我在插入/删除的地方运行了查询并且一切正常,但是当我需要返回数据集时,即使我知道它不为 null,它也会返回 null)。

当我将 CPU 更改为 x86 时,仅在 Win 2008 中出现此问题。如果我尝试在不将 AnyCPU 更改为 x86 的情况下运行该服务,则会出现另一组错误。

4

2 回答 2

0

好的,就是这样,原来是数据库用户权限。问题是我从 .net 框架得到的错误绝对是垃圾,并且没有指针表明这是由于某种类型的用户权限。感谢每一位尝试过的人。

于 2013-04-19T01:43:23.633 回答
0

您是否将 web.config 复制到新的 IIS?它可能只是服务器和客户端之间的最大大小消息不匹配

于 2013-04-17T23:03:50.443 回答