Tag: asp.net

什么导致“会话状态已经创build了一个会话ID,但无法保存,因为应答已经被刷新了。”

我间歇性地得到这个错误。 我发现这个链接,它总结了我在Google上能find的东西: http : //www.wacdesigns.com/2009/02/03/session-state-has-created-a-session-id-but-不能保存,它-因为最响应是,已经刷新由这应用程序/ 基本上它说你可以尝试设置Webconfiguration设置DisplayWhenNewSession,或者通过Session_OnStart获取Session.SessionID来尝试踢会话状态的东西。 但是有没有人: a)对此有一个解释 甚至更好,b)有一个经过validation的修复 我意识到,在做任何会影响http响应头的东西之后,我都无法刷新响应。 如果我这样做, 每次都会导致错误,但这是间歇性的。 在ASPX页面或Page_Load(这是我所有的刷新被调用的地方)之前,会自动在页面响应开始时由ASP.NET创buildSessionID。 更新:在反思时,我意识到这是发生在stream文件到浏览器。 大多数浏览器实际上是search引擎机器人。 我可以通过开始下载然后closures浏览器来重新创build这个错误,所以大概浏览器在取消下载操作之前不会等待下载完成。 我也在其他正常页面上看到了这一点,但99%的时间是下载页面。

什么导致IIS中的应用程序池回收?

我一直在寻找这方面的信息无济于事。 为什么我需要这个背景是我在这里问的另一个问题 。 更具体地说,在App_Data中创build/更新/删除文件会导致池回收? 如果有人可以提供一个回收的详细清单,这将是很好的。 更新 :作为两个用户已经注意到,我也很乐意回答指定回收AppDomain的唯一原因,而不是整个池。

使用iPhone UIWebView的Asp.Net Forms身份validation

我正在写一个使用表单身份validation的Asp.net MVC 2应用程序,目前我在通过Web进行身份validation/login时遇到了iPhone应用程序的问题。 我们开发了一个使用UIWebView控件的简单iPhone应用程序。 在这个阶段,所有的应用程序都导航到我们的Asp.Net网站。 很简单,对吧? 问题是,用户无法越过login页面。 repro步骤是: 打开iPhone应用程序。 该应用程序导航到主页。 用户没有被authentication,所以他们被redirect到login屏幕/页面 用户input正确的用户名和密码。 点击提交。 在服务器端,用户通过身份validation,生成一个cookie,并使用FormsAuthentication.GetAuthCookie发送给客户端。 服务器发送redirect将用户发送到正确的主页。 但用户被redirect回login屏幕! 我已经做了一些广泛的debugging,我知道的是: Cookie正在发送给客户端,客户端正在存储Cookie。 在iPhonedebugging器中validation了这一点,并使用Javsascript在页面上显示cookie数据。 该cookie正在被发送回服务器。 在Visual Studiodebugging器中validation了这一点。 这是正确的cookie(这是设置相同的)。 即使auth cookie包含在Request对象中,User.Identity.IsAuthenticated属性也会由于某种原因返回false。 我已经validationiPhone应用程序设置为接受cookie,并且它们在客户端上。 这是有趣的事情:如果你打开iPhone上的Safari浏览器,并直接进入我们的网站,它工作正常。 它在iPad上也有相同的行为,因为它不会超越login屏幕。 这个仿真器和设备上的repros。 这个网站已经testingIE 7-8,Safari(Windows),黑莓,IEMobile 6.5,电话7,它的工作发现。 唯一不适用的情况是iPhone应用程序中的UIWebView。

在asp.netpath中使用波浪号(〜)

我正在一个asp.net应用程序,下面的链接工作在IE中,但不是在FF。 <a href="~/BusinessOrderInfo/page.aspx" > 是不是只能在asp.net服务器控件中使用的代字符。 哪里会被实际的path取代? 是否有可能在锚标签中使用代字号? 如果是这是什么意思? 当我在根,链接工程 www.myserver.com/default.aspx, click the link, ok! www.myserver.com/otherpart/default.aspx, click the link, not ok! ASP.NET生成的链接是: www.myserver.com/otherpart/~BusinessOrderInfo/page.aspx 这是由devise?

caching与会话的优点

在Session vs Cache中存储数据表有什么区别? 有什么优点和缺点? 所以,如果它是一个简单的search页面,返回一个数据表格的结果,并将其绑定到一个gridview。 如果用户'a'search和用户'b'search,将它存储在Session中是否更好,因为每个用户最有可能具有不同的结果,或者我仍然可以将他们的每个search存储在Cache中,或者是没有意义的,只有一个caching。 我想基本上我想说的是Cache会被覆盖。

在web.config连接string中转义引号

我的networkingconfiguration中有一个连接string: <add name="MyConString" connectionString="Server=dbsrv;User ID=myDbUser;Password=somepass"word" providerName="System.Data.SqlClient" /> 如您所见,密码中有一个引号(“)(由其他部门提供,我无法更改此db用户密码)。 我该如何逃避这个连接string中的引号? 顺便说一句:我已经试过“ 在string中。 这是行不通的 – ado.net得到了一个ArgumenException然后:“初始化string的格式不符合从索引57开始的规范。 57是“ 在我的连接string中。 我也尝试将密码部分封入“ – 也没有工作。 也试过“”和“ – web.config不能被parsing。 感谢您的解决scheme: 我必须结合双引号的转义和把密码放在单引号中: <add name="MyConString" connectionString="Server=dbsrv;User ID=myDbUser;Password='somepass&quot;word'" providerName="System.Data.SqlClient" />

如何在debugging期间在ASP.NET(C#)中使用Console.WriteLine?

我想写一些结果到ASP.NET(C#)的控制台。 它在Window应用程序中工作,但Web应用程序不起作用。 这是我所尝试的: protected void btonClick_Click(object sender, EventArgs e) { Console.WriteLine("You click me ………………."); System.Diagnostics.Debug.WriteLine("You click me ………………"); System.Diagnostics.Trace.WriteLine("You click me ………………"); } 但是我在“输出”面板中什么都看不到。 我如何解决这个问题?

在.NET应用程序中的不稳定无效的Viewstate问题

我好像在我的ASP.NET应用程序的事件查看器中不时出现“无效的viewstate”。 他们大多数(95%)似乎是引用ScriptResource.axd (应用程序使用ASP.NET AJAX库)。 我无法移除Ajax库,因为无处不在使用Ajax。 我怎样才能减less这些错误? 我每天发生100-200个错误,我不知道如何修复它们! 他们来自不同的浏览器,不同的IP地理位置。 我很难重现这个问题,因为它几乎没有发生在我身上,只有我突然间发生了3-4次。 错误: Process information: Process ID: 4004 Process name: w3wp.exe Account name: NT AUTHORITY\NETWORK SERVICE Exception information: Exception type: HttpException Exception message: Invalid viewstate. Request information: Request URL: http://domainnamehere/ScriptResource.axd?d=W1R6x9VzZ2C9SKnIkOmX9VRLhSjJ3nOF1GSQvPwKS3html Request path: /ScriptResource.axd User host address: 124.177.170.75 User: Is authenticated: False Authentication Type: Thread account name: NT AUTHORITY\NETWORK […]

在页面之间传递数据的最佳实践

问题 在项目之间重复使用的堆栈中,我们在会话中传递了一些数据,以便在页面之间传递数据。 这在理论上是好的,因为它防止篡改,重放攻击等等,但是它创造了许多问题。 会话丢失本身是一个问题,虽然它主要通过实现会话状态服务器(或通过使用SQL Server)来处理。 更重要的是,让后退button正常工作是非常棘手的,而且还需要额外的工作来创build一个用户可以在三个选项卡中打开同一屏幕以处理不同logging的情况。 而这只是冰山一angular。 对于这些问题,大部分都有解决方法,但是随着我的磨砺,所有这些摩擦都让我觉得,使用会话在页面之间传递数据是错误的方向。 我真正想要做的是提出一个最佳实践,我的商店可以随时使用页面之间的数据传递,然后,对于新的应用程序,replace目前依赖于Session的堆栈的关键部分。 如果最终的解决scheme不会导致大量的样板代码,这也是很好的。 build议的解决scheme 会议 如上所述,倚重Session就好像是一个好主意,但是它打破了后退button,导致了一些其他的问题。 可能有办法解决所有的问题,但似乎有很多额外的工作。 有一件事使用会话是非常好的事实,篡改是不是一个问题。 与通过未encryption的QueryString传递所有内容相比,最终编写的守护代码要less得多。 跨页面发布 事实上,我几乎没有考虑这个选项。 我有一个问题,它是如何紧密耦合,使页面 – 如果我开始做PreviousPage.FindControl(“SomeTextBox”),这似乎是一个维护问题,如果我想要从另一个页面,可能没有这个页面一个名为SomeTextBox的控件。 在其他方面似乎也受到限制。 也许我想通过链接进入页面,例如。 请求参数 我现在正在倾向于这个策略,就像在古代那样。 但是我可能希望我的QueryString被encryption以使其难以被篡改,并且我也想要处理重放攻击的问题。 来自罗拉的4个人, 有一篇关于这个的文章 。 但是,应该可以创build一个HttpModule来处理所有这些操作,并从页面中删除所有的encryption香肠。 果然, Mads Kristensen有一篇文章发表了一篇文章。 然而,这些评论听起来像是在极其常见的情况下有问题。 其他选项 当然,这并不是对选项的看法,而是我正在考虑的主要选项。 此链接包含更完整的列表。 那些我没有提到的如Cookies和Cache不适合在页面之间传递数据的目的。 正在closures… 那么,你如何处理页面之间传递数据的问题呢? 你有什么隐藏的陷阱需要解决,是否有任何预先存在的工具可以完美地解决它们? 你觉得你有一个解决scheme,你完全满意吗? 提前致谢! 更新:为了防止我不够清楚,通过“在页面之间传递数据”我正在谈论,例如,从CustomerSearch.aspx页面传递CustomerID键到Customers.aspx,客户将被打开并可以进行编辑。

List.Add()线程安全

我知道一般List不是线程安全的,但是如果线程从不在列表中执行任何其他操作(比如遍历它),那么简单地将项添加到列表中有什么问题吗? 例: List<object> list = new List<object>(); Parallel.ForEach(transactions, tran => { list.Add(new object()); });