嵌入Windows User Control到ASP.NET web form
实现步骤:
- 新建Windows User Control项目,加入自己想做的事情(一些控件、方法、属性)
- 新建或打开Web项目,在相应页面中加入
</object>
编译项目,并把user control的dll文件拷贝到web的根目录下,简单的便可以执行了。
为了从网页传递一些初始值给UserControl的属性,在对象中加入param
<PARAM NAME='SomeText' VALUE='test'> </OBJECT> <!-- Property named "SomeText" in WinControl1.UserControl1 -->
</object>
为了每次修改过控件后网页中还可以正常显示,新建一个console项目去改名并拷贝
{
if (args.Length != 2)
return;
string fileName = args[0];
string outputPath = args[1];
Debug.WriteLine(fileName);
Debug.WriteLine(outputPath);
string version = Assembly.LoadFile(fileName).GetName().Version.ToString();
outputPath = Path.Combine(outputPath, Path.GetFileName(fileName).Replace(".dll", version + ".dll"));
File.Copy(fileName, outputPath, true);
}
修改WindowsControl项目属性,在build events的post-build中加入:
"$(SolutionDir)Rename.exe" "$(TargetPath)" "$(SolutionDir)WinControlWeb\ "
这样便每次把项目以原有名称加版本号拷贝到web项目下,web页面code behind加入以下代码自动取得最新的dll和删掉旧的dll(web用的vb.net)
'delete old, only get latest file
Dim fs As List(Of String) = New List(Of String)(Directory.GetFiles(Server.MapPath("~"), controlPrefix & "*.dll"))
fs.Sort()
Dim lastIndex = fs.Count - 1
Dim result = Path.GetFileName(fs(lastIndex))
fs.RemoveAt(lastIndex)
For Each s As String In fs
File.Delete(s)
Next
Return result
End Function
web页面修改为
<PARAM NAME='SomeText' VALUE='test'> </OBJECT> <!-- Property named "SomeText" in WinControl1.UserControl1 -->
</object>
但若是想用javascript取的控件的属性或调用控件的方法,需要将控件的ComVisible设为true(在Assembly.cs文件中)
以上是直接使用visual studio调试,若部署后,客户端访问需要更改本地权限,需要新建一个代码组并赋予权限,执行如下命令:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\caspol.exe -quiet -machine -addgroup All_Code -url http://localhost/* FullTrust -name "GroupName"
将http://localhost/* 中的localhost换成实际网站或主机,指定一个GroupName
以上命令可以放到一个consle项目中去自动执行
{
try
{
Process.Start(@"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\caspol.exe",
@"-quiet -machine -addgroup All_Code -url http://localhost/* FullTrust -name ""MyTest""");
Console.WriteLine("设置成功!按任意键退出。");
Console.Read();
}
catch (Exception ex)
{
Console.WriteLine("发生异常,请将以下错误信息发送给管理员。");
Console.WriteLine(ex.Message);
Console.ReadLine();
}
}
在页面中加入一个链接让用户自己去点击用来设定权限
当点击链接后直接点运行,出现问题,那就用rar做一个自解压包,解压后运行Setup.exe,问题解决。
转载于:https://www.cnblogs.com/DracoWang/archive/2008/07/12/1241506.html
嵌入Windows User Control到ASP.NET web form相关推荐
- ASP.NET Web Form学习
ASP.NET Web Form学习 0.aspx与html 它如何工作? 从根本上讲,ASP.NET 页面与 HTML 完全相同. HTML 页面的扩展名是 .htm 或 .html.假如浏览器从服 ...
- power bi报表服务器_如何将Power BI Report Server报表嵌入ASP.Net Web应用程序
power bi报表服务器 Every once in a while, teams from different functional areas of the business (i.e. bus ...
- 在Windows上安装HTTPIE(人类HTTP)-非常适合ASP.NET Web API和RESTful JSON服务
Recently in on a post on the RESTful ASP.NET Web API framework I used curl to post JSON to an HTTP e ...
- asp.net web开发步骤_如何在Windows上做Python开发?微软出了官方教程
机器之心报道 参与:路 在 Windows 上做 Python 开发太痛苦?微软最近发布了一系列官方教程,终于-- 教程地址:https://docs.microsoft.com/zh-cn/wind ...
- 《ASP.NET Web 站点高级编程》勘误 Part 3
<ASP.NET Web 站点高级编程>勘误 Part 3 P201(-2)...一个以两个新闻ID作为输入, 建议:...一个以新闻ID作为输入, 原文:one with no para ...
- vs2005新建项目中没有ASP.NET WEB应用程序
今天正准备使用vs 2005,发现根本打不开老师发过来的源代码Portal_Article.csproj文件,上网查了一下,好多人都说是是因为没有给vs 2005打补丁.我的新建项目里根本没有ASP. ...
- 【ASP.NET Web API教程】3.3 通过WPF应用程序调用Web API(C#)
注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本博客文章,请先看前面的内容. 3.3 Calling a Web API From a WPF Application ...
- 让WEB FORM更像WINDOWS FORM: 控制窗体事件
[按] 你可能会误解本文标题:让WEB FORM 更像WINDOWS FORM. 你也许会把本文当作是讨论应用程序界面. 其实本文讨论的是ASP.NET表现层设计. 也许会给你一点启示:如何设计逻辑 ...
- Creating a Pager Control for ASP.NET以及Dino Esposito 分页组件的一个 Bug
我在使用MSDN 上 Dino Esposito 的分页组件对DataGrid进行操作的时候,发现在 PagingMode="NonCached" 时候,最后一页的时候,会报错误: ...
最新文章
- I hope so 2016-Oct-10
- linux:apt的源
- 张莉python 玩转数据答案_大学mooc2020年用Python玩转数据课后答案
- [C++]variadic function template expansion 变元函数参数的展开规则
- php xampp 安装yaf,在apache中,yaf访问yaf,apache会异常退出是为何?
- layui totalRow 多层嵌套json_自定义 Behavior,实现嵌套滑动、平滑切换周月视图的日历...
- spring mvc 中自定义404页面在IE中无法显示favicon.ico问题的解决方法。
- 启用IIS7配置ASP运行环境的详细方法
- ue4 rootmotion动画、模型导入使用(注)
- 关于金仓数据库的java连接问题
- DNS、HTTP劫持的一些事
- 全球最牛逼的并发架构,抖音排第二,它排第一!
- oracle+alert删除日志,清除alert log
- 亚控科技的KingSCADA多个漏洞
- conda创建虚拟环境失败
- 数据结构基本概念和术语
- 《树莓派项目实战》第十二节 使用PCA9685驱动板控制多个舵机
- Vue的Watch事件-如何监听对象的属性(字段中间带有点)
- 【数据库】实验二~六
- word插入图片,嵌入型,无效果
热门文章
- 人脸检测(十七)--Faceness-Net
- python 中的坦克大战0.1版本
- python空格算一个字符吗_举例说明python中空格是属于字符
- 小白重装系统教程_小白重装系统使用教程
- Spark Session 与 Spark Context的区别
- JavaScript的apply和call方法及其区别
- ckeditor 触发事件(案例)
- 【转】mysql_fetch_row , mysql_fetch_array , mysql_fetch_assoc 的区别
- 鼠标的默认事件之oncontextmenu及其案例
- nfs+lvm解决磁盘空间扩容问题