.Net源码论坛 [ 繁体中文 ]

发新话题 回复该主题

51Aspx第五十九期在线答疑活动实录(12-28) [复制链接]

楼主
主持人(***)13:59:45
活动开始
主持人(***)13:59:50
请用户19提问
用户19(***)14:00:01
专家:请问一下UrlRewrite的问题  
我现在可以实现: xx_xxx.aspx--->xx.aspx?id=xxx
(1):我怎样实现  xxx.html --->xx.apsx?id=xxx
我在IIS里面已经添加了.html的映射

(2):我怎样实现xxx --->xxx.aspx?id=xxx
用户19(***)14:07:28

主持人(***)14:07:40
稍等 正在联系专家
用户19(***)14:12:48

专家S(***)14:13:15
51ASPX上有类似的源码
专家S(***)14:13:25
你找找吧。我不懂重写这一块东东
用户19(***)14:14:00
我下了一个..
用户19(***)14:14:52
但没找到他的转换规则在那里写的...webconfig里面没有..
专家D(***)14:17:35
怎么了?
用户19(***)14:18:37
请问一下UrlRewrite的问题  

我现在可以实现: xx_xxx.aspx--->xx.aspx?id=xxx

(1):我怎样实现  xxx.html --->xx.apsx?id=xxx
我在IIS里面已经添加了.html的映射

(2):我怎样实现xxx --->xxx.aspx?id=xxx

专家D(***)14:19:57
你是说伪静态
用户19(***)14:20:07
嗯 .
专家D(***)14:21:24
http://apps.hi.baidu.com/share/detail/23905236  瞧一下吧。
用户150(***)14:21:56
GridView导出Excel
用户150(***)14:22:24
如何实现
主持人(***)14:22:34
用户150稍等
主持人(***)14:22:45
请问用户19还有别的问题么?
用户19(***)14:22:45
谢谢..
用户19(***)14:22:59
没了..
主持人(***)14:23:07
不客气  请用户123提问
用户123(***)14:23:17

用户123(***)14:24:23
是关于发邮件的 我下载了一个源码 但是邮件发不出去
用户123(***)14:24:43
  1. public void SendSMTPEMail(string strSmtpServer, string strFrom, string strFromPass, string strto, string strSubject, string strBody)
  2. {
  3. System.Net.Mail.SmtpClient client = new SmtpClient(strSmtpServer);
  4. client.UseDefaultCredentials = false;
  5. client.Credentials = new System.Net.NetworkCredential(strFrom, strFromPass);
  6. client.DeliveryMethod = SmtpDeliveryMethod.Network;

  7. System.Net.Mail.MailMessage message = new MailMessage(strFrom, strto, strSubject, strBody);
  8. message.BodyEncoding = System.Text.Encoding.UTF8;
  9. message.IsBodyHtml = true;
  10. if (lblAttachment.Text != "")
  11. {
  12. Attachment att = new Attachment(lblAttachment.Text);
  13. message.Attachments.Add(att);
  14. }
  15. client.Send(message);
  16. }
复制代码
用户123(***)14:25:02
  1. protected void btnSend_Click(object sender, EventArgs e)
  2. {
  3. try
  4. {
  5. m_Server = reader.GetValue("MailServer", typeof(string)).ToString();
  6. m_User = reader.GetValue("MailServerUser", typeof(string)).ToString();
  7. m_Pass = reader.GetValue("MailServerPassword", typeof(string)).ToString();

  8. switch (rbtlType.SelectedValue)
  9. {
  10. case "1":
  11. m_Emails = txtTo.Text;
  12. break;
  13. case "2":
  14. string[] list = txtTo.Text.Split(';');

  15. if (list.Length == 1)
  16. {
  17. m_Emails = m_Users.GetEmailByGameAccount(list[0]);
  18. }
  19. else if (list.Length > 1)
  20. {
  21. for (int i = 0; i < list.Length - 1; i++)
  22. {
  23. m_Emails += m_Users.GetEmailByGameAccount(list[i]) + ";";
  24. }
  25. }
  26. break;
  27. }

  28. string[] email = m_Emails.Split(';');

  29. if (email.Length == 1)
  30. {
  31. m_To = email[0];
  32. SendSMTPEMail(m_Server, m_User, m_Pass, m_To, txtSubject.Text, txtBody.Text);
  33. m_Count = 1;
  34. if (m_IsDraft)
  35. {
  36. m_tmpEmail.DeleteDraft(int.Parse(Request["id"]));
  37. }
  38. }
  39. else if (email.Length > 1)
  40. {
  41. for (int i = 0; i < email.Length - 1; i++)
  42. {
  43. m_To = email[i];
  44. SendSMTPEMail(m_Server, m_User, m_Pass, m_To, txtSubject.Text, txtBody.Text);
  45. if (m_IsDraft)
  46. {
  47. m_tmpEmail.DeleteDraft(int.Parse(Request["id"]));
  48. }
  49. }
  50. m_Count = email.Length - 1;
  51. }
  52. lblMsg.Text = "发送成功,共发送" + m_Count + "封邮件";
  53. lblMsg.Visible = true;
  54. btnCSend.Visible = true;
  55. }
  56. catch (Exception ex)
  57. {
  58. Response.Redirect("error.aspx?msg=" + ex.Message.Replace("\r\n", "$"));
  59. }
  60. }
复制代码
用户123(***)14:25:12
这代码
专家D(***)14:25:55
关于邮件我也不太清楚 呵呵 我知道 java 的。
用户123(***)14:25:42

专家A(***)14:26:51
看看那一步出错了
专家A(***)14:27:06
client.DeliveryMethod = SmtpDeliveryMethod.Network;  
用户123(***)14:27:43
调试了 没报错
用户87(***)14:28:49
“SMTP”不是邮件服务器的错误吗?
专家A(***)14:29:01
发送邮件地址,验证服务是否正确
用户126<***>14:29:56
我在公司做过发送邮件的    
用户126<***>14:30:00
  1.   private void sendMail(string body)
  2.         {
  3.             MailMessage mailObj = new MailMessage();
  4.             mailObj.From = new MailAddress("dingyan@sf-express.com"); //发送人邮箱地址
  5.             mailObj.To.Add("cc551it@sf-express.com");   //收件人邮箱地址
  6.             // mailObj.To.Add("dingyan@sf-express.com");   //收件人邮箱地址
  7.             mailObj.Subject = "报障信息";    //主题
  8.             mailObj.Body = body;    //正文
  9.             SmtpClient smtp = new SmtpClient();
  10.             smtp.Host = "10.0.15.22";         //smtp服务器名称
  11.             smtp.UseDefaultCredentials = true;
  12.             smtp.Credentials = new NetworkCredential("sf\\***", "sf***");  //发送人的登录名和密码
  13.             smtp.Send(mailObj);
  14.         }
复制代码
专家A(***)14:30:12
是否有安全验证
用户126<***>14:31:29
我的代码就这么写的  可以发送  
用户87(***)14:32:17
邮件服务器地址不对吧
主持人(***)14:32:38
用户123 您试一下大家的方法吧
用户123(***)14:32:45
验证服务没什么问题
用户126<***>14:33:19
   smtp.Host = "10.0.15.22";  这是我们公司的内部服务器地址  
用户123(***)14:33:29
这跟在局域网 有关系吗
用户126<***>14:34:03
你只要设置正确的 服务器地址应该就OK了吧  
专家A(***)14:34:19
换个163的测试一下就好了
用户123(***)14:35:23
163 qq sina 都试过
用户123(***)14:35:28
不行
用户87(***)14:36:02
高度的时候没报错?
用户123(***)14:36:48
没有
用户87(***)14:37:43
上面的错误是运行结束才报的
用户87(***)14:37:44

用户123(***)14:38:04

用户126<***>14:39:04
  明显是 smtp服务器地址问题 嘛  
用户87(***)14:39:19
我看着也是
用户126<***>14:40:04
是不是服务器地址  不允许你使用它发邮件 吧  
专家A(***)14:41:25
  1. smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.PickupDirectoryFromIis;
复制代码
专家A(***)14:41:32
那你换成这个试试
用户123(***)14:42:05
恩 我试试
用户150(***)14:43:14
到我了
主持人(***)14:45:14
请问用户123 可以解决了吗?
主持人(***)14:45:33
您试试大家的方法吧 活动时间有限 我们不得不请下一位用户提问
主持人(***)14:45:40
用户150提问
用户123(***)14:45:46
好的
主持人(***)14:48:02
用户150提问
用户150(***)14:48:08
net 解决 session 容易 丢失
用户150(***)14:48:32
sessionState>节点的“mode”属性,改为mode=“StateServer"

用户150(***)14:48:43
我把这个改了但是还是不行
用户150(***)14:50:46
请问要怎么session才不会丢失
主持人(***)14:52:54
其他用户如果有解决方法也可以说说
用户153<***>14:53:54
找服务器商直接说会话时间短。
用户45(***)14:54:00
session本来就容易丢失,他是服务端的,只能延长时间,不可能做到不丢失吧
用户87(***)14:54:25
网络不稳定也会丢失的
用户150(***)14:54:53
但是也太段了
用户153<***>14:54:54
你只要给服务器商说会话时间短人家就给你搞好了
用户150(***)14:54:56
timeout="***"
用户153<***>14:55:21
你在程序里面设置时间没有用的。
专家S(***)14:55:26
在IIS上设置最大时间。光设置程序顶多20分钟的。
用户153<***>14:55:32
你的服务器是租的虚拟空间吧
用户150(***)14:55:33

用户150(***)14:55:37
是的
用户175(***)14:55:48
什么时候轮到我
用户150(***)14:55:51
哪就是服务器哪里的问题了
用户153<***>14:55:51
那你就给服务器商说会话时间短就行了。
用户153<***>14:56:11
别的不用问的人家知道怎么处理的
用户153<***>14:56:22
多给你分配点内存就行了
用户150(***)14:56:47
好的我试下,还有一个就是怎么导出到Excel
用户150(***)14:58:08
GridView导出Excel
用户150(***)14:58:56
网络上有很多但是只能导出当前 页没办法全导出来
用户153<***>14:59:08
  1. Response.Clear();
  2.         Response.BufferOutput = true;
  3.         //设定输出的字符集
  4.         Response.Charset = "GB2312";
  5.         //假定导出的文件名为FileName.xls
  6.         Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");
  7.         Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
  8.         //设置导出文件的格式
  9.         Response.ContentType = "application/ms-excel";
  10.         //关闭ViewState
  11.         EnableViewState = false;
  12.         System.Globalization.CultureInfo cultureInfo = new System.Globalization.CultureInfo("ZH-CN", true);
  13.         System.IO.StringWriter stringWriter = new System.IO.StringWriter(cultureInfo);
  14.         System.Web.UI.HtmlTextWriter textWriter = new System.Web.UI.HtmlTextWriter(stringWriter);
  15.         gvPersonList.RenderControl(textWriter);
  16.         //把HTML写回浏览器
  17.         Response.Write(stringWriter.ToString());
  18.         Response.End();
复制代码
用户153<***>14:59:38
要全导出来你在导出之前要先把分页去掉
用户87(***)15:00:17
重新执行一下你的SQL语句,然后把数据集导出
用户153<***>15:00:52
87想法不错。
用户150(***)15:02:51
有没有相关实例  
用户153<***>15:03:21
发给你的代码就是。
用户150(***)15:04:07
GridViewExportUtil.GridViewToExcel(this.grdUser, "企业会员表.xls");
用户150(***)15:04:30
  1. /// <summary>
  2.     /// 将网格数据导出到Excel
  3.     /// </summary>
  4.     /// <param name="ctrl">网格名称(如GridView1)</param>
  5.     /// <param name="FileType">要导出的文件类型(Excel:application/ms-excel)</param>
  6.     /// <param name="FileName">要保存的文件名</param>
  7.     public static void GridViewToExcel(Control ctrl,string FileName)
  8.     {

  9.         //GV_list.AllowPaging = False        GV_list.AllowSorting = False        
  10.        // ctrl.Columns[7].Visible = false; //导出时隐藏操作列  
  11.        // ctrl.BottomPagerRow.Visible = false; //隐藏分页行  
  12.       
  13.         HttpContext.Current.Response.Charset = "GB2312";
  14.         HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;//注意编码
  15.         HttpContext.Current.Response.AppendHeader("Content-Disposition",
  16.             "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
  17.         HttpContext.Current.Response.ContentType = "application/ms-excel";//image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword
  18.         ctrl.Page.EnableViewState = false;
  19.         //ctrl.AllowPaging = false;

  20.         StringWriter tw = new StringWriter();
  21.         HtmlTextWriter hw = new HtmlTextWriter(tw);
  22.         ctrl.RenderControl(hw);
  23.         HttpContext.Current.Response.Write(tw.ToString());
  24.         HttpContext.Current.Response.End();
  25.     }
复制代码
用户150(***)15:04:47
我用一个方法直接调用
用户150(***)15:05:27
帮我看下要怎么改才能关分页
用户153<***>15:05:50
GV_list.AllowSorting = False  
用户153<***>15:05:55
人家这个就是。
用户153<***>15:06:12
结果你注释了。
用户153<***>15:06:25
GV_list.AllowPaging = False  
用户150(***)15:06:27
这个说明不行我才注释
用户153<***>15:06:44
是这个 GV_list.AllowPaging = False  
用户153<***>15:06:57
你注释了
用户153<***>15:07:31
//ctrl.AllowPaging = false;
用户153<***>15:07:41
把这个注释去掉就行了
用户150(***)15:08:03
ctrl这个没有AllowPaging的属性

用户153<***>15:08:58
那你就在调用button事件在调用这个方法之间加上一句。
用户150(***)15:10:10
这个好办法
用户150(***)15:10:54
对了有没有更好的方法
用户150(***)15:11:28
比如可以根据所选的行导出数据
用户87(***)15:12:13
遍历gridview,找到需要的行,然后导出
用户153<***>15:12:18
那你就让gridview绑定那一行的数据就行了。
用户150(***)15:13:49
还要加个数据源
主持人(***)15:25:33
请用户45提问
用户45(***)15:27:12
.net的discuz有社区么
用户45(***)15:27:34
请问.net怎么弄社区啊
用户18(***)15:28:06
谁 用了  UrlRewriter控件 url重写 后 iis部署 加了了.html但 原本的html页面打不开了
主持人(***)15:28:13
用户18稍等
专家S(***)15:29:17
下载,安装不就可以了吗
专家S(***)15:29:21
用DISCUZ的
用户45(***)15:29:55
社区也用discuz!nt
用户45(***)15:30:11
可是discuz!nt他只是个论坛呀
用户45(***)15:30:13
没有社区
专家S(***)15:30:31
社区是什么
用户45(***)15:31:17
社区就是像个人的空间一样而论坛是发帖子的地方
用户45(***)15:31:22
这是我个人的理解
用户45(***)15:31:34
所以我觉得论坛跟社区不是一码事
专家S(***)15:31:55
不太懂。那你想咨询什么
用户150(***)15:31:55
是不是sns
用户45(***)15:32:05
是bbs
专家S(***)15:32:35
BBS就是论坛。
用户45(***)15:32:44
嗯嗯
用户45(***)15:32:52
那社区怎么整啊
专家S(***)15:33:15
应该就是SNS了。自己开发?
用户45(***)15:33:38
sns要自己开发吗
用户45(***)15:33:44
有没有现成的
专家S(***)15:34:24
好像51上有
用户45(***)15:34:55
哦,我找找看好了
主持人(***)15:37:15
请用户112提问
用户112<***>15:37:31
专家好请问:让用户只有通过登陆界面才能进入到后台页面,该怎么做,专家有何高见(在webconfig中该怎么配置?)
用户112<***>15:38:48
有时不用登陆也能进去部分页面,很不安全。该咋办。。专家帮忙瞅瞅。
用户8(***)15:39:06
权限 或者 判断session
用户112<***>15:41:18
session似乎不行啊,我登陆用的是Cookie,我判断cookie.得需要在每个页面中判断。很麻烦,能不能在webconfig 中配置一下啊
用户45(***)15:42:16
你是不是想点击其他页面的时候必须经过登录界面才能进去啊
用户45(***)15:42:42
这个可以写个重写page基类
用户45(***)15:42:49
就可以实现这个效果
用户112<***>15:43:05
我是想要想进入后台页面必须登陆。??45,我不是很懂的、
用户45(***)15:43:11
我的就是这样实现的
用户45(***)15:44:19
就是点击其他页面的时候不能浏览让系统直接跳到登录界面
用户45(***)15:44:25
不是这个效果么
用户8(***)15:44:55
是的 基类
用户112<***>15:44:59
不是,在地址栏中输入后台页面也能进入后台,我就是想要避免这个。
用户8(***)15:45:15
用基类啊
水荷香边(***)15:45:49
  1. <authentication mode="Forms">
  2. <forms name=".ASPXFORMSAUTH" loginUrl="Login.aspx" defaultUrl="Manager\****.aspx" path="/" timeout="10"></forms>
复制代码
用户45(***)15:45:55
是啊,所以说每个页面验证一下有没有登录就行了呗,最简单的方法是写个类
水荷香边(***)15:45:58
用这个就行
主持人(***)15:52:03
请用户178提问
用户178(***)15:52:22
[问题名称]:浏览器不兼容
            [问题描述]:图片滚动在IE下一会快,一会慢 ,在谷歌下正常
            [困扰时间]:24个小时以上
            [缓急程度]:急
            [调试环境]:VS2010

用户178(***)15:53:05
  1. <style type="text/css">
  2.     .cl_demo{ width:820px; margin:10px 0px 5px; height:112px; OVERFLOW: hidden;  align:left; background:white;}
  3.     .cl_demo img {
  4.     height: 115px; width:150px;
  5.     margin :0px 7px;
  6.     border:1px solid #ecef5d;}
  7.     .cl_marquePic1{ list-style:none;}
  8.     .cl_marquePic1 li{ float:left; display:inline;}
  9. </style>
  10. </head>
  11.    <body>
  12. <div style=" background-color:#ff00ff; height:300px; width:820px;">
  13.   <div id="demo" class="cl_demo">
  14.    <table cellspacing="0" cellpadding="0" align="left" border="0">
  15.      <tbody>
  16.       <tr>
  17.         <td id="marquePic1" valign="top" class="cl_marquePic1">
  18.             <table width="900" border="0" cellpadding="0" cellspacing="0">
  19.                 <tr>
  20.                  <td>
  21.                      <img src="#" /> <img src="#" /> <img src="#" /> <img src="#" /> <img src="#" />
  22.                 </td>
  23.                </tr>

  24.           </table>
  25.       </td>
  26.       <td id="marquePic2" valign="top"></td>
  27.     </tr>
  28.   </tbody>
  29.   </table>
  30. </div>
  31. </div>
  32. <script  type="text/javascript">
  33.     var speed = 10
  34.     marquePic2.innerHTML = marquePic1.innerHTML
  35.     function Marquee() {
  36.         if (demo.scrollLeft >= marquePic1.scrollWidth) {
  37.             demo.scrollLeft = 0
  38.         } else {
  39.             demo.scrollLeft++
  40.         }
  41.     }
  42.     var MyMar = setInterval(Marquee, speed)//speed=20
  43.     demo.onmouseover = function () { clearInterval(MyMar) }
  44.     demo.onmouseout = function () {
  45.         MyMar = setInterval(Marquee, speed)//speed=20
  46.     }
  47. </script>
复制代码
用户178(***)15:53:34
请问各位专家遇到过类似的问题不?
用户178(***)15:55:22
怎么都没人回答我的问题啊?
主持人(***)15:55:30
稍等
专家A(***)15:57:34
看看js是否兼容
用户178(***)15:58:19
不兼容怎么办?
专家A(***)15:59:06
那就要想办法兼容,比如判断是什么浏览器启用不同的方法和样式
用户178(***)16:00:05
在IE下都是一段时间慢,一段时间快,这样循环的啊
专家A(***)16:00:29
你有网址我看一下
专家A(***)16:00:42
多找几个人测试一下,IE8还是IE7
用户178(***)16:01:26
测过了,IE8,IE7都是慢的啊
用户178(***)16:02:17
还是在局域网内,没有网址的
用户178(***)16:02:38
http://61.54.242.51:4567/
专家A(***)16:06:14
那可能就是不兼容的问题,在网上找找不同的写法
用户178(***)16:06:59
找了很长时间了,没找到
用户178(***)16:07:25
在IE6下图片滚动正常
主持人(***)16:09:10
本期活动结束  
主持人(***)16:09:16
用户178可以继续讨论
用户178(***)16:09:20

专家A(***)16:09:30
http://javapower.javaeye.com/blog/368766
专家A(***)16:09:38
判断不同的浏览器
用户178(***)16:09:44
我问题怎么办哪?
专家A(***)16:10:27
http://blog.csdn.net/lyflcear/archive/2009/07/17/4357522.aspx
专家A(***)16:10:34
这里有和你同样的问题
专家A(***)16:10:36
你看一下
用户178(***)16:10:51
好的,我先看看吧,谢谢你啦
专家A(***)16:11:04
  1. f(isFirefox=navigator.userAgent.indexOf("Firefox")>0){
  2. return "Firefox";
  3. }

  4. 稍做修改完成了图片滚动的特效

  5. if(navigator.userAgent.indexOf("FireFox")>0)

  6. {

  7. Demo1 = document.getElementById("demo1"); //非w3c标准要找到表单,必须是要用getElementById("XX");

  8. Demo2 = document.getElementById("demo2");

  9. piclist = document.getElementById("piclist ");

  10. }

  11. else

  12. {

  13. Demo2.innerHTML=demo1.innerHTML

  14. }
复制代码
用户18(***)16:11:21
谁 用了  UrlRewriter控件 url重写 后 iis部署 加了了.html但 原本的html页面打不开了
专家A(***)16:11:29
可以解决你的问题的,让你谷歌百度一下都不可以,
用户18(***)16:11:32
专家能帮忙下吗
专家A(***)16:12:27
不好意思,我很少用这个的
分享 转发
.NET小常识:[url]http://bbs.51aspx.com/showtopic-13513.html[/url]
源码下载:[url]http://www.51aspx.com[/url]
联系电话/QQ:4000410510
年轻人,不要浮躁!
TOP
沙发

顶!

希望论坛这个活动持续下去!
TOP
发新话题 回复该主题