2014-12-08 81 views
1

我开发了一个ASP.NET网站,它使用System.Windows.Media dll将3D图像渲染为位图。在IIS托管的ASP.NET中使用Media3D站点

该过程是客户端页面请求渲染。 然后服务器运行渲染代码并在页面上设置位图。

这一切在VisualStudio中都可以正常工作,但只要我发布到IIS,渲染图像就不再显示。由Media3D渲染的位图是空的!

我正在使用RenderTargetBitmap将ViewPort3d渲染为位图。

我相信这是一个IIS信任问题,但我一直无法解决它。有没有人有关于如何解决这个问题的线索?

我正在使用.Net 4.5,并在Windows 7 64位上运行,但将托管它的服务器是Windows 8 Server,如果这改变了任何东西。 UPDATE

进程监视器是非常有用的。 从我可以告诉 HKCU \ Software \ Classes下\ CLSID {AC757296-3522-4E11-9862-C17BE5A1767E} \实例

HKCR \ CLSID {AC757296-3522-4E11-9862-C17BE5A1767E} \实例名NOT FOUND

HKCU \ Software \ Classes下\ CLSID {2B46E70F-CDA7-473E-89F6-DC9630A2390B} \实例名称找不到

HKCR \ CLSID {2B46E70F-CDA7-473E-89F6-DC9630A2390B} \实例名NOT FOUND

这些键可能会导致问题,但我不完全确定它们是什么,使用谷歌搜索第一个问题wi th http://msdn.microsoft.com/en-us/library/windows/desktop/ee719879%28v=vs.85%29.aspx 它引用了编码器特定的注册表项。这导致我相信我在某种程度上错过了适合RenderTargetBitmap和BmpBitmapEncoder的编码器/解码器,以便从w3wp.exe/IIS中正常工作。我在哪里可以找到这些?我会认为他们与.NET Framework一起。任何线索?

当我运行从Visual Studio的网站,这些不请...

感谢, GP

+0

不确定,但可能是这通常是用于WPF应用程序的名称空间,而不是WebForms中看到的名称空间。您使用的是什么功能,因为对于非WPF应用程序可能会有更好的模拟。如果生成媒体所需的资源需要比ASP.Net应用程序通常允许的更高的权限,那么也可能存在权限错误。 – 2014-12-08 04:18:53

+0

嘿,我正在加载一个3D网格,并将其放入一个viewport3d,然后使用RenderTargetBitmap将其渲染到位图。我在哪里可以了解这些错误?因为据我所见,没有错误的证据。只是没有生成位图,我假设是因为IIS无法访问某些需要的资源。 – Profes 2014-12-08 20:55:53

+0

确定它可能会非常棘手。您可以尝试MSDN论坛。如果您有完全访问服务器的权限,则可以尝试一些Microsoft SysInternals工具。他们生成大量信息(方式太多),但我用它们来查找非常特定的权限错误。尝试进程监视器(http://technet.microsoft.com/en-us/sysinternals/bb896645)以查看是否可以发现任何被拒绝的资源。 – 2014-12-09 03:00:11

回答