您的位置:首页 > 编程语言 > ASP

[SCM]ASPx.net开发供应链系统,用来给供应商查询或做一些单据之类的

2015-06-01 18:40 661 查看
现在在公司开发一个项目,也接触到了很多新东西,现在主要是用Visual Studio2013环境的ASPx - C#语言开发的,个人比较喜欢C#,简洁明了、效率高。

这个项目用到很多的插件……因为是从另一个系统改的所以。。。这个系列的博客[SCM]开头的都只是将开发中学习到的东西,还有一些实现的方法,以备往后是用,也给大家提供一些帮助(涉及到的一些接口已经加密)

主要用到的第三方插件有:

DevExpress

Dxt

Oracle的插件……

用到的团队代码托管工具是Tortoise SVN

接下来,我将陆陆续续的更新这个项目遇到的问题,截止到今天,我已经用8天的时间完成了1个WebService和4个表的开发工作。马上就是订单管理了,空闲了我会整理这些东西的!

由于时间原因,今天先分享一个我才开始这个项目时遇到的一个小问题,这个问题困扰我好几天……重装了5次系统……记忆犹新,问题真的太小了!

团队其他人的项目跑起来正常,但是我也按照他们的环境部署的开发环境,却遇到了乱码问题——编译正常、浏览器跑的时候,出现了不同的乱码全部是菱形的问号,创建的其他工程跑起来正常的很,在项目中新建项跑起来也是乱码的,设置断点发现根本没有跑到那个位置……问度娘、bing姐,只有一个遇到的问题和我一样,但是人家解决了4个多月都没人回,无奈,使用了一个神器代码段,放在“Global.asax”的异常处理处,发现了这个问题的根源。

下列代码粘贴于这个函数中:

<pre name="code" class="csharp">void Application_Error(object sender, EventArgs e) {
// Code that runs when an unhandled error occurs
// 在出现未处理的错误时运行的代码
}




Code that runs when an unhandled error occurs
在出现未处理的错误时运行的代码
Exception ex = Server.GetLastError().GetBaseException();
Response.Write("<script>alert('" + ex.Message.Replace("'", "\\'").Replace("\r\n", "\\r\\n") + "');</script>");
//throw new Exception(ex.Message);
StringBuilder str = new StringBuilder();
str.Append("\r\n" + DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss"));
str.Append("\r\n.客户信息:");

string ip = "";
if (Request.ServerVariables.Get("HTTP_X_FORWARDED_FOR") != null)
{
ip = Request.ServerVariables.Get("HTTP_X_FORWARDED_FOR").ToString().Trim();
}
else
{
ip = Request.ServerVariables.Get("Remote_Addr").ToString().Trim();
}
str.Append("\r\n\tIp:" + ip);
str.Append("\r\n\t浏览器:" + Request.Browser.Browser.ToString());
str.Append("\r\n\t浏览器版本:" + Request.Browser.MajorVersion.ToString());
str.Append("\r\n\t操作系统:" + Request.Browser.Platform.ToString());
str.Append("\r\n.错误信息:");
str.Append("\r\n\t页面:" + Request.Url.ToString());
str.Append("\r\n\t错误信息:" + ex.Message);
str.Append("\r\n\t错误源:" + ex.Source);
str.Append("\r\n\t异常方法:" + ex.TargetSite);
str.Append("\r\n\t堆栈信息:" + ex.StackTrace);
str.Append("\r\n--------------------------------------------------------------------------------------------------");
//创建路径
string upLoadPath = Server.MapPath("~/log/");
if (!System.IO.Directory.Exists(upLoadPath))
{
System.IO.Directory.CreateDirectory(upLoadPath);
}
//创建文件 写入错误
System.IO.File.AppendAllText(upLoadPath + DateTime.Now.ToString("yyyy.MM.dd") + ".log", str.ToString(), System.Text.Encoding.UTF8);
//处理完及时清理异常
Server.ClearError();
//跳转至出错页面
Response.Redirect("~/error.html");


跑起来,发现是个服务没有启用。。。我了去,不知道为什么VisualStudio安装完成后不把这个服务启用。。

具体我们看看是什么服务:


可以看到是ASP.NET 状态服务,这是个神马东东?

“为 ASP.NET 提供进程外会话状态支持。如果此服务被停止,进程外请求将得不到处理。如果此服务被禁用,任何显式依赖它的服务将无法启动。”

好吧,这么重要的一个服务你默认不开启,我也是醉了!真的很难想到是这个服务导致的问题,一般乱码都是字符格式的问题导致的,但……好吧,代码根本没运行过去也说明了这没关系。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: