所以我被告知我在这里做的事情是错的,但我不确定为什么.
我有一个网页导入带有文档编号的CSV文件,以执行昂贵的操作.我把昂贵的操作放到后台线程中,以防止它阻塞应用程序.这就是我的简要说明.
protected void ButtonUpload_Click(object sender, EventArgs e)
{
if (FileUploadCSV.HasFile)
{
string fileText;
using (var sr = new StreamReader(FileUploadCSV.FileContent))
{
fileText = sr.ReadToEnd();
}
var documentNumbers = fileText.Split(new[] {',', '\n', '\r'}, StringSplitOptions.RemoveEmptyEntries);
ThreadStart threadStart = () => AnotherClass.ExpensiveOperation(documentNumbers);
var thread = new Thread(threadStart) {IsBackground = true};
thread.Start();
}
}
Run Code Online (Sandbox Code Playgroud)
(显然有一些错误检查和用户投掷的消息)
所以我的三个问题是:
所以我有一个问题让我陷入困境.熟悉系统的人无法弄清楚为什么sproc会死锁,但是他们告诉我我应该把它添加到它:
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
Run Code Online (Sandbox Code Playgroud)
这真的是一个有效的解决方案?那是做什么的?
我正在尝试运行Heckle,并且我一直收到错误:
> spec spec/controllers/my_controller_spec.rb --heckle MyController
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!! exception= has a thick skin. There's nothing to heckle.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
(Runs through several mutations...)
/home/developer/.gem/ruby/1.8/gems/heckle-1.4.3/lib/heckle.rb:603:in `current_code': undefined method `translate' for Ruby2Ruby:Class (NoMethodError)
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
编辑:我忘记了宝石版本:
heckle (1.4.3)
ruby2ruby (1.2.3)
rails (2.3.2, 2.2.2)
rspec (1.2.6)
rspec-rails(1.2.6, 1.1.12)
Run Code Online (Sandbox Code Playgroud) 我正在尝试测试用户创建.根据我的测试,我打电话给以下人员:
MembershipCreateStatus status;
// _session is my current NHibernate session.
var mmp = new MyMembershipProvider(_session);
mmp.CreateUser(username, password, "something@example.com", "", "", true, Guid.NewGuid(), out status);
Run Code Online (Sandbox Code Playgroud)
在这个CreateUser方法中,它得到了这么远:
var user = new MembershipUser(Name, username, providerUserKey, email, passwordQuestion, passwordAnswer, isApproved, false, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now);
Run Code Online (Sandbox Code Playgroud)
...在抛出此异常之前:
The membership provider name specified is invalid.
Parameter name: providerName
Run Code Online (Sandbox Code Playgroud)
我将我的名称设置为MyMembershipProvider,并在Web.config中我有这个:
<add name="OnyxMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
applicationName="/" />
Run Code Online (Sandbox Code Playgroud)
还有,我的连接字符串:
<add name="ApplicationServices" …Run Code Online (Sandbox Code Playgroud) 所以我FileContentResult从这样的动作返回一个:
return File(pck.GetAsByteArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "MyExcelFile.xlsx");
Run Code Online (Sandbox Code Playgroud)
在IE中单击"打开"(我使用的是IE9,版本9.0.8112.16421)时,会显示"无法下载文件",并向用户显示"重试"按钮.如果他们单击"重试",则可以正常工作.如果他们单击"保存",则工作正常.在Firefox中,它工作正常.
如何在第一次单击"打开"时允许用户打开文件?
有没有人知道一种方法来查看由迁移生成的SQL(最好不实际运行迁移)?
谢谢!
我有一个黄瓜步骤,最近 在添加到我的布局时失败了.如果我拿出 来,我的测试全部通过.当我把它重新放入时,每个使用WebRat提供的click_link方法的测试都会失败,并显示以下消息:
And he follows 'Unsubscribe'
incompatible encoding regexp match (UTF-8 regexp with ASCII-8BIT string) (Encoding::CompatibilityError)
(eval):3:in `click_link`
(eval):2:in `click_link`
/path_to_project/webrat_steps.rb:19:in `/^(I|he|she) follows? '([^\"]*)'$/'
features/manage_subscriptions.feature:59:in `And he follows 'Unsubscribe''
Run Code Online (Sandbox Code Playgroud)
有没有人有什么建议?
所以,我有一个订阅表:
id - int(11) (With Primary Key)
user_id - int(11)
group_id - int(11)
role - int(11)
pending - tinyint(1)
created_at - datetime
updated_at - datetime
Run Code Online (Sandbox Code Playgroud)
我经常查询用户是否具有与此类似的访问权限:
SELECT * FROM `subscriptions` WHERE (group_id = 1 AND user_id = 2 AND pending = 0) LIMIT 1
Run Code Online (Sandbox Code Playgroud)
我想知道subscriptions(group_id, user_id, pending)在这种情况下添加一个独特的索引是否有帮助或阻碍?索引几乎整个表的最佳实践是什么?
所以,我正在努力将HTML从标准的ASP.Net页面中删除.我已经重写了Render方法,如下所示:
protected override void Render(HtmlTextWriter writer)
{
MemoryStream memoryStream = new MemoryStream();
try
{
using (StreamWriter streamWriter = new StreamWriter(memoryStream))
{
var textWriter = new HtmlTextWriter(streamWriter);
base.Render(textWriter);
memoryStream.Position = 0;
using (StreamReader reader = new StreamReader(memoryStream))
{
var text = reader.ReadToEnd();
Response.Write(text);
reader.Close();
}
}
}
catch(ObjectDisposedException)
{
// The stream writer is already disposed?
}
finally
{
memoryStream.Dispose();
}
}
Run Code Online (Sandbox Code Playgroud)
这适用于小于8.00 KB(8,200字节)的文件.如果文件大于该文件,则末尾的任何文本都将被截断.
有没有人有建议?
我有一个基本的模型:
myTestModel = Backbone.Model.extend({
defaults: {
title: 'My Title',
config: {},
active: 1,
}
})
Run Code Online (Sandbox Code Playgroud)
没有什么特别之处,但是我注意到config选项中的值会在实例之间被记住.例如:
var test1 = new myTestModel();
test1.set('title', 'A New Title');
test1.get('config').screen_name = 'Joe';
alert( test1.get('title') ); // 'A New Title', expected.
alert( test1.get('config').screen_name ); // 'Joe', expected.
var test2 = new myTestModel();
alert( test2.get('title') ); // 'My Title', expected.
alert( test2.get('config').screen_name ); // 'Joe', NOT expected.
Run Code Online (Sandbox Code Playgroud)
那么,为什么在test2,是screen_name正在从保存test1?我怎样才能防止这种情况发生?
c# ×3
sql ×3
sql-server ×2
.net-4.0 ×1
activerecord ×1
asp.net ×1
asp.net-mvc ×1
backbone.js ×1
background ×1
cucumber ×1
deadlock ×1
heckle ×1
indexing ×1
javascript ×1
mysql ×1
nhibernate ×1
nunit ×1
ruby ×1
streamreader ×1
webrat ×1