我刚刚在我简陋的专用服务器(Win2003)上启动了我的小型webapp ...运行ASP.NET MVC,LINQ2SQL,SQL Express 2005和IIS6(使用通配符映射设置)
该网站90%的时间运行顺利.但是,在相对较高的流量上,LINQ2SQL会抛出错误:指定的强制转换无效
此错误仅在高流量时抛出.我没有想法,为什么会发生这种情况.缓存并没有完全消除这个问题.
以前有人见过这个问题吗?有什么秘密的SQL Server调整我应该做的吗?或者至少,有关如何诊断此问题的任何想法?因为我出去了!
纳伊米
Stacktrace(来自事件日志):
at System.Data.SqlClient.SqlBuffer.get_SqlGuid() at System.Data.SqlClient.SqlDataReader.GetGuid(Int32 i) at Read_Friend(ObjectMaterializer`1 ) at System.Data.Linq.SqlClient.ObjectReaderCompiler.ObjectReader`2.MoveNext() at Dudlers.Web.Models.DudlersDataContext.GetFriendRequests(Guid userId) in C:\Web\Models\DudlersDataContext.cs:line 562 at Dudlers.Web.Controllers.BaseController.View(String viewName, String masterName, Object viewData) in C:\Web\Controllers\BaseController.cs:line 39 at System.Web.Mvc.Controller.View(String viewName) at Dudlers.Web.Controllers.CatController.Index() in C:\Web\Controllers\CatController.cs:line 25 at lambda_method(ExecutionScope , ControllerBase , Object[] ) at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(MethodInfo methodInfo, IDictionary`2 parameters) at System.Web.Mvc.ControllerActionInvoker.c__DisplayClassb.b__8() at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) …
我多年没有使用过静态类型的语言,并且自己设定了使用C#加速的任务.我正在使用我常用的技巧来完成15个练习http://www.jobsnake.com/seek/articles/index.cgi?openarticle&8533作为我的第一个任务.
我刚刚完成了第二个Fibonacci任务,它没有花很长时间并且工作得很好,但在我看来看起来很难看,而且我确信可以通过更少的优雅代码来实现.
我通常喜欢通过与已经知道他们正在做什么的人进行结对编程来学习,但是这个选项今天不对我开放,所以我希望在这里发布将是下一个最好的事情.
所以对于所有C#Jedi来说,如果你要重构下面的代码,它会是什么样子?
using System;
using System.Collections;
namespace Exercises
{
class MainClass
{
public static void Main(string[] args)
{
Console.WriteLine("Find all fibinacci numbers between:");
int from = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("And:");
int to = Convert.ToInt32(Console.ReadLine());
Fibonacci fibonacci = new Fibonacci();
fibonacci.PrintArrayList(fibonacci.Between(from, to));
}
}
class Fibonacci
{
public ArrayList Between(int from, int to)
{
int last = 1;
int penultimate = 0;
ArrayList results = new ArrayList();
results.Add(penultimate);
results.Add(last);
while(last<to)
{
int fib = last + penultimate;
penultimate = …
Run Code Online (Sandbox Code Playgroud) 这只是一个满足我好奇心的问题.但对我来说这很有意思.
我写了这个简单的小基准.它以随机顺序调用3个Regexp执行变体几千次:
基本上,我使用相同的模式,但以不同的方式.
没有任何你的普通方式RegexOptions
.从.NET 2.0开始,这些不会被缓存.但是应该"缓存",因为它保存在一个非常全局的范围内而不是重置.
同 RegexOptions.Compiled
调用静态Regex.Match(pattern, input)
,它在.NET 2.0中得到缓存
这是代码:
static List<string> Strings = new List<string>();
static string pattern = ".*_([0-9]+)\\.([^\\.])$";
static Regex Rex = new Regex(pattern);
static Regex RexCompiled = new Regex(pattern, RegexOptions.Compiled);
static Random Rand = new Random(123);
static Stopwatch S1 = new Stopwatch();
static Stopwatch S2 = new Stopwatch();
static Stopwatch S3 = new Stopwatch();
static void Main()
{
int k = 0;
int c = 0;
int c1 = 0;
int …
Run Code Online (Sandbox Code Playgroud) 我想测试一个网站,看看它如何与iPhone配合使用,但我没有iPhone或iPod touch.有没有办法可以在不拥有网站的情况下测试网站的工作方式?
我真正想要解决的是Stackoverflow的WMD降价编辑器如何在iPhone上运行.我听说超链接和图像提示创建得太高.我想我知道如何解决这个问题,但盲目发展却相当困难.
我有一个List<string>
包含重复的东西,我需要找到每个的索引.
除了循环遍历所有项目之外,最优雅,最有效的方法是什么.我在.NET 4.0上,所以LINQ是一个选项.我做了大量的搜索并连接找到任何东西.
样本数据:
var data = new List<string>{"fname", "lname", "home", "home", "company"}();
Run Code Online (Sandbox Code Playgroud)
我需要得到"家"的索引.
在我即将结束的项目中,我已经为PHP编写并实现了一个对象关系映射解决方案.在怀疑者和梦想家喊出"怎么样?"之前,放松一下 - 我还没有找到一种方法来进行后期的静态绑定工作 - 我只是以最好的方式解决它.
无论如何,我目前没有使用预准备语句进行查询,因为我无法想出一种方法将可变数量的参数传递给bind_params()
或bind_result()
方法.
你问,为什么我需要支持可变数量的参数?因为我的模型的超类(将我的解决方案想象为hack-up-PHP ActiveRecord wannabe)是定义查询的地方,所以find()方法例如不知道绑定需要多少参数.
现在,我已经考虑构建一个参数列表并将字符串传递给eval(),但我不太喜欢这个解决方案 - 我宁愿只实现自己的安全检查并传递语句.
有没有人有任何关于如何完成这项工作的建议(或成功案例)?如果你可以帮助我解决这个第一个问题,也许我们可以解决结果集的绑定(我怀疑会更困难,或者如果它涉及初始查询以确定表结构,则至少需要更多资源).
尝试使用Team Foundation Build构建我的应用程序时出现以下错误:
C:\ WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets(1682,9):错误MSB3554:无法写入输出文件"obj\Release\Company.Redacted.BlahBlah.Localization.Subsystems. Startup_Shutdown_Processing.StartupShutdownProcessingMessages.de.resources".指定的路径,文件名或两者都太长.完全限定的文件名必须少于260个字符,目录名必须少于248个字符.
我的项目在我的开发机器上构建良好,因为源只有两个文件夹深,但TF Build似乎使用了一个非常深的目录导致它中断.如何更改使用的文件夹?
编辑:我检查了存储在源代码管理中的构建的.proj文件,发现了以下内容:
<!-- BUILD DIRECTORY
This property is included only for backwards compatibility. The build directory used for a build
definition is now stored in the database, as the BuildDirectory property of the definition's
DefaultBuildAgent. For compatibility with V1 clients, keep this property in sync with the value
in the database.
-->
<BuildDirectoryPath>UNKNOWN</BuildDirectoryPath>
Run Code Online (Sandbox Code Playgroud)
如果这存储在数据库中,我该如何更改它?
编辑:找到以下博客文章,可能指向我的解决方案.现在我只需要弄清楚如何更改Build Agent中的设置. http://blogs.msdn.com/jpricket/archive/2007/04/30/build-type-builddirectorypath-build-agent-working-directory.aspx
目前我的工作目录是"$(Temp)\ $(BuildDefinitionPath)",但现在我不知道哪些通配符可用于指定不同的文件夹.
我的客户希望我在用户登录时启用"记住我"复选框.我正在加密并将用户名和密码存储在cookie中.
但是,当它处于密码模式时,您无法写入文本框.
我已经看过很多次,所以他们是怎么做到的?
提前致谢!
我正在使用带有webrat/mechanize的黄瓜来测试PHP站点,我试图通过避免运行不必要的步骤来提高测试运行的速度.
我想使用场景大纲来检查大量页面是否可访问/受保护,具体取决于登录的用户:
Scenario Outline: Check page access is secure
Given I am logged in as "<user>"
And I am on <page>
Then I should see "<message>"
Examples:
|user |page |message |
|admin |home page |Welcome to my site |
|admin |admin page|Site administration |
|editor|home page |Welcome to my site |
|editor|admin page|Access denied |
|guest |home page |Please login |
|guest |admin page|Access denied |
...
Run Code Online (Sandbox Code Playgroud)
这是有效的,但鉴于我有10个角色和数百个要检查的页面,每次大纲运行时运行登录步骤会产生大量开销.
我想知道是否有办法为每个角色运行一次登录步骤,然后轮流访问每个页面而无需每次都登录.即运行"登录,访问1,访问2,访问3"而不是"登录,访问1,登录,访问2,登录,访问3".
我已经尝试过使用hooks和Background,但似乎无法找到一种有效的方法.这可能吗?
我正在使用paperclip将我的文档上传到Amazon S3.我想在上传新文档时自动创建一个包含项目ID的存储桶.
因此,在我的控制器中,我有这个:
def new
@pmdocument = Pmdocument.new
@pmdocument.projectmilestone_id=params[:projectmilestone_id]
Run Code Online (Sandbox Code Playgroud)
其中projectmilestone_id是我项目的foreign_key(用作我的桶名)
我的模型是这样的:
class Pmdocument < ActiveRecord::Base
belongs_to :projectmilestone
attr_accessible :id, :name, :description, :projectmilestone_id, :pmdoc, :projectmilestone_attributes
attr_protected :pmdoc_content_type, :pmdoc_size
accepts_nested_attributes_for :projectmilestone, :allow_destroy => false
has_attached_file :pmdoc,
:storage => :s3,
:bucket => self.projectmilestone_id.to_s,
:s3_credentials => File.join(Rails.root, 'config', 's3.yml')
Run Code Online (Sandbox Code Playgroud)
当我加载页面时,我收到此错误:未定义的方法`projectmilestone_id'for#
我检查了我的控制器,并在那里正确加载了projectmilestone_id字段.
我试图将铲斗线更改为:bucket => self.name
然后错误消失了.
该模型工作正常,因为projectmilestone_id正确存储在db中.
我的猜测是它可以链接到可访问的属性,但它似乎也可以.
怎么了?非常感谢!!!
我真的不明白:
我决定不再改变我的桶了(不管怎样,坏主意因为所有S3的名称都必须是唯一的),而是改变我的路径.
这是代码:
:path => proc { |attachment| "#{attachment.istance.projectname}/:attachment/:id/:basename.:extension" },
Run Code Online (Sandbox Code Playgroud)
未创建具有项目名称的第一个文件夹.如果我按名称,甚至描述(pmdocuments的另一个字段)替换projectname,它可以工作,但不能与projectname一起使用.当然,我检查了projectname是否正确填充.原因在于其他地方.
任何线索?
c# ×3
.net ×1
amazon-s3 ×1
asp.net-mvc ×1
benchmarking ×1
cookies ×1
cucumber ×1
duplicates ×1
forms ×1
iis-6 ×1
iphone ×1
linq-to-sql ×1
list ×1
msbuild ×1
mysql ×1
mysqli ×1
orm ×1
paperclip ×1
performance ×1
php ×1
refactoring ×1
regex ×1
search ×1
tfs ×1
tfsbuild ×1
web-testing ×1