Tag: asp.net

在asp.net做预定的后台工作

我需要在我的asp.net应用程序中定期执行某项任务,所以这样做: protected void Application_Start() { Worker.Start(); } … public static class Worker { public static void Start() { ThreadPool.QueueUserWorkItem(o => Work()); } public static void Work() { while (true) { Thread.Sleep(1200000); //do stuff } } } 这种做法好吗? 我看到一个关于在这个网站上授予徽章的博客是使用asp.net缓存黑客完成的: http : //blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/

如何坚持动态控制(c#)

根据标题,我创建了一个自定义控件。 在某个按钮单击事件上,将实例化此控件,然后将其添加到页面中。 它是一个动态控件,具有自己的按钮事件。 为了触发这些按钮事件,必须在随后的page_load / onload生命周期阶段中通过Page_Load / OnLoad的结尾绘制控件。 我的问题是如何坚持这种控制? 我不能将它存储在Session对象中,因为它包含不可序列化的项目。

如何“按原样”将二进制数据写入Registry(即:我只将可见二进制数据作为来自regedit的字符串)

我一直在谷歌上搜索这一天并没有找到一整天的工作解决方案。 我对二进制数据类型一无所知(因为我从来没有故意使用过它们)而且我正在尝试将我在注册表中看到的二进制值写入注册表。 现在,我所看到的是以下[如下所示] …如果我尝试将其作为字符串传递给WinAPI中的RegSetValueEx ,当然它会出错……我不知道我需要什么’数字’传入RegSetValueEx lpData As Any, RegSetValueEx参数(我尝试了一个位数组),以便它在regedit中如下所示[如下所示]。 我真的不知道,我的测试在位数组中放置随机数只会产生相应的随机“数字”,如注册表中所见,我不明白如何将它们“逻辑”地“绑定”在一起。 这是罪魁祸首! Windows注册表编辑器版本5.00 [HKEY_CURRENT_USER \ SOFTWARE \一些\注册\位置] “的RegistryKey”=己烷:01,00,00,00,d0,8c,9D,DF,01,15,d1,11,8c,7α,00,c0,4f,c2,97,EB,\ 01,00,00,00,7b,96,8a,78,B9,CC,c1,4f,b1,35,11,01,5e,3C,25,9b,00,00,00,00,02, \ 00,00,00,00,00,10,66,00,00,00,01,00,00,20,00,00,00,22,1c,B6,EA,E3,a5,06,8b, \ 58,69,7b,89,19,b3,1f,a3,1d,D8,b7,5b,30,72,65,4b,22,41,a8,73,d1,92,BB,36,00, \ 00,00,00,0e,80,00,00,00,02,00,00,20,00,00,00,87,a0,1a,79,A7,C9,FE,图7A,图1B,图24, \ 图9a,71,5d,CF,7B,87,BC,1B,14,6e,59,96,e3,42,C6,f5,08,78,00,a6,42,3d,30,00,00, \ 00,02,0a,2A,EA,d9,49,0a,FA,48,B3,F1,E2,AE,E2,f8,42,a2,54,1e,56,DC,DD,9B,0D, \ 图9b,73,41,72,54,CC,64,49,99,f1,5c,12,70,33,8e,FB,b1,31,66,DF,B4,e0,02,BB,40, \ 00,00,00,13,c2,7d,88,16,AF,56,AC,82,21,39,95,43,04,50,71,c2,4c,6A,44,a6,03, \ EA,32,4d,D9,f3,0f,22,2e,41,17,2e,26,11,9b,10,9d,99,60,FC,12,D2,CE,7c中,1C,78, \ 图6b,f0,59,23,FD 84,46,2c,58,41,EE,31,7a,f8,95,57,54 如果我在字符串或位数组中有以下内容,我必须填充比特数,以便注册表在写入时输出[上面]? 或者,我怎样才能弄明白该怎么做? 我希望有一个函数可以读取我的二进制数据串并将其转换为真正的二进制格式,以提交给VB6中的RegSetValueEx函数或VB.Net或C#中的其他函数(这实际上是一个与语言无关的问题,并且问题存在于所有语言中;即:相同的过程)。 我希望有一个解决方案,我可以遵循这个或领导。 谢谢你们,当我把头发拉出来时,你们是最棒的!

C#最佳实践error handling和传递错误消息

我正在使用asp.net,我总是在努力寻找一种处理错误的简洁方法,如果有的话,将错误消息传递给用户。 例如,我有一个User类,UserManager类和一个Database类。 Imagina我想显示所有用户,显示我从UserManager调用方法GetAllUsers返回User对象列表。 此方法创建一个Database对象并调用方法ExecuteQuery(字符串查询)。 编辑:现在我的问题,想象一下ExecuteQuery()方法出错(无法打开数据库)。 我想在打开数据库连接时通知用户出错了。 我应该怎么做并处理这个整洁的方式? 编辑2: 你会这样做吗? 或者其他? public class Database() { private string _Error; // property error (only get) private void Open() { try { // Open DB // Fails because of error } catch(Exception ex) { _Error = ex.Message; } } public DataSet ExecuteQuery(string query) { try { Open(); // Execute […]

如何计算字符串中每个单词的出现次数?

我使用下面的代码从字符串输入中提取单词,我怎样才能得到每个单词的出现? var words = Regex.Split(input, @”\W+”) .AsEnumerable() .GroupBy(w => w) .Where(g => g.Count() > 10) .Select(g => g.Key);

防止在C#中回传HtmlButton

我在.cs文件中动态创建HtmlButton。 使用将其添加到Panel HtmlButton b1 = new HtmlButton(); b1.Attribute.Add(“onclick”,”javascript:validateNclick(this.id);”); pnl.Controls.Add(b1); //pnl is Server-side 现在我怎么能防止回发呢? 我编写了javascript,它在IE中工作(没有回发)但在Mozilla Firefox中没有(直接转到服务器端代码)。 请帮忙。

如何使用“读取更多”链接限制GridView中的标签字符串长度?

目前我这样使用…… <asp:Label ID="lblDescription" runat="server" Text='’ > 辅助函数: public static string Limit(object Desc, int length) { StringBuilder strDesc = new StringBuilder(); strDesc.Insert(0, Desc.ToString()); if (strDesc.Length > length) return strDesc.ToString().Substring(0, length) + “…” + [Read More]; else return strDesc.ToString(); } 但我不知道如何把[阅读更多]链接…

global.asax中的自定义错误

在我的global.asax文件中,我有以下代码: void Application_Error(object sender, EventArgs e) { Exception TheError = Server.GetLastError(); if (TheError is HttpException && ((HttpException)TheError).GetHttpCode() == 404) { Response.Redirect(“~/404.aspx”); } else { Response.Redirect(“~/500.aspx”); } } 当我导航到不存在的页面时,我得到了通用错误页面。 我不希望在web.config出现与自定义错误有关的任何内容,因为我的计划是将代码添加到global.asax文件以记录exception。 有没有办法只使用global.asax文件处理自定义错误? 谢谢。

在ASP.net中单击按钮后发送电子邮件C#

嗨,我想在按钮点击Asp.net后发送电子邮件。 将从查询中检索发送电子邮件的电子邮件。 string connectionString = ConfigurationManager.ConnectionStrings[“ConnectionString”].ConnectionString; SqlDataReader reader; string sendMessage = “SELECT aspnet_Membership.Email FROM aspnet_Membership join User_Profile on User_Profile.UserId = aspnet_Membership.UserId JOIN Project_List on Project_List.ProfileId = User_Profile.ProfileId WHERE Project_List.ProfileId = 1”; using (SqlConnection myConnection = new SqlConnection(connectionString)) { myConnection.Open(); SqlCommand myCommand = new SqlCommand(sendMessage, myConnection); ArrayList emailArray = new ArrayList(); reader = myCommand.ExecuteReader(); while (reader.Read()) […]

ASP.Net MVC应用程序中的线程安全全局变量

我需要在ASP.Net MVC应用程序中实现一个multithreading全局变量。 ConcurrentDictionary是理想的,但如何让我的应用程序中的每个用户会话都可以访问它? 这样的事情可以做到吗? public static class GlobalStore { public static ConcurrentDictionary GlobalVar { get; set; } } 我需要多个用户才能读取和写入此对象。