IIS 中 asp.net 本地网站的权限
Posted
技术标签:
【中文标题】IIS 中 asp.net 本地网站的权限【英文标题】:permissions in IIS for asp.net local website 【发布时间】:2014-05-08 19:14:44 【问题描述】:大家好,我想创建一个网站[本地],它的一项功能必须是从桌面(运行 IIS 的 pc 桌面,完全是服务器端桌面)截屏,你应该说为什么是服务器端,答案是,我想在楼下时通过移动设备查看我的桌面,看看下载是否完成:D
我在代码隐藏的 asp.net 页面中使用此代码
int screenLeft = SystemInformation.VirtualScreen.Left;
int screenTop = SystemInformation.VirtualScreen.Top;
int screenWidth = SystemInformation.VirtualScreen.Width;
int screenHeight = SystemInformation.VirtualScreen.Height;
// Create a bitmap of the appropriate size to receive the screenshot.
using (Bitmap bmp = new Bitmap(screenWidth, screenHeight))
// Draw the screenshot into our bitmap.
using (Graphics g = Graphics.FromImage(bmp))
g.CopyFromScreen(screenLeft, screenTop, 0, 0, bmp.Size);
// Do something with the Bitmap here, like save it to a file:
MemoryStream ms2 = new MemoryStream();
bmp.Save(ms2, System.Drawing.Imaging.ImageFormat.Jpeg);
bmp.Dispose();
IMG.Src = "data:image/jpg;base64," + Convert.ToBase64String(ms2.GetBuffer());
ms2.Dispose();
从 Visual Studio 运行时,它可以,它会截屏,但是当我将网站发布到本地主机时,它会显示此错误
“/”应用程序中的服务器错误。
句柄无效
说明:在执行当前网络请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.ComponentModel.Win32Exception:句柄无效
来源错误:
在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。
堆栈跟踪:
[Win32Exception (0x80004005): 句柄无效] System.Drawing.Graphics.CopyFromScreen(Int32 sourceX, Int32 sourceY, Int32 destinationX, Int32 destinationY, Size blockRegionSize, CopyPixelOperation copyPixelOperation) +781 System.Drawing.Graphics.CopyFromScreen(Int32 sourceX, Int32 sourceY, Int32 destinationX, Int32 destinationY, Size blockRegionSize) +35 ScreenShot.capture_Click(Object sender, EventArgs e) +334 System.Web.UI.WebControls.Button.RaisePostBackEvent(字符串 eventArgument)+154 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3707
知道该怎么做吗??????我感觉它关于权限但是如何设置它们,我不知道......
【问题讨论】:
【参考方案1】:大家好,我找到了解决这个问题的方法,我从 MS 网站下载了 IIS 8.0 express,在为我的网站路径设置了 applicationhost.config 并绑定 ip-port 并为其授予防火墙权限后,现在我可以截屏了我的桌面:D 谢谢大家。
【讨论】:
【参考方案2】:我的第一反应是,这是不可能的,但既然你在 VS 中设法做到了,可能是......
要设置用户,在 IIS 中,您需要转到应用程序池 -> 右键单击您的站点正在使用的应用程序池(默认情况下它是 ASP.NET V4.0 集成)-> 高级设置 -> 查找名为 Identity 的设置,单击 [...],然后在新的弹出窗口中单击单选按钮自定义帐户,并在那里设置您的用户帐户。
如果这不能解决问题,我认为什么都不会
【讨论】:
嗨,感谢响应,它使用 DefaultAppPool ,所以我应该如何处理用户名和密码??????我的意思是我应该设置什么,我的意思是我必须设置我的 Windows 身份验证信息或其他任何我想要的东西!之后我应该如何处理我的代码隐藏,有没有地方可以在代码隐藏中输入这些用户名和密码??? 在这种情况下,我倾向于说不可能实现您的目标。尝试创建另一个您可以启动的控制台应用程序,该应用程序可以捕获桌面,将其保存到您的 Web 进程可以读取的位置,然后返回该图像。 我实际上也尝试过,没有错误但也没有结果。我的意思是应用程序运行我可以在资源监视器中看到它,但永远不会结束,所以我的页面永远不会工作,图像永远不会创建。我将我的图像保存在第二个驱动器上,并且不需要在该驱动器上写入权限,而且这个应用程序在 Windows 8 IIS 上运行得很好...... 控制台应用程序以无结果结束,win-app 永远不会结束 恐怕我能想到的就这些了.. 使用像 TeamViewer 这样的远程应用可能会更容易,它是免费的,并且有适用于 android、iphone 和 windows 手机的应用以上是关于IIS 中 asp.net 本地网站的权限的主要内容,如果未能解决你的问题,请参考以下文章
asp.net,本地发布,IIS报错,HTTP 错误 500.19 - Internal Server Error
windows server 2012 r2 iis8.5 部署 asp.net 网站