小编Nat*_*lus的帖子

字符串插值是否评估重复使用?

如果我有一个格式字符串多次使用相同的占位符,例如:

emailBody = $"Good morning {person.GetFullName()}, blah blah blah, {person.GetFullName()} would you like to play a game?";
Run Code Online (Sandbox Code Playgroud)

person.GetFullName()被评估两次,还是编译器足够聪明,知道它们是相同的值,应该评估一次?

c# c#-6.0

25
推荐指数
2
解决办法
815
查看次数

输入文本时,DatePicker.SelectedDate不会更改

当我的用户通过DatePicker中的Calander控件选择日期时,该值将正确绑定到基础对象.但是,如果用户在DatePicker中键入日期,则单击按钮,文本不会设置为SelectedDate属性.

用户必须从DatePicker中的TextBox中移除光标,以便更新绑定对象.

 <toolkit:DatePicker Name="_dpField" Grid.Column="1" MinWidth="100"
               ToolTip="{Binding Path=ToolTipText}"
               TextInput="_dpField_TextInput"
               SelectedDate="{Binding Path=Value, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>
Run Code Online (Sandbox Code Playgroud)

救命!如何确保在按钮事件代码中使用此类型的值?

谢谢!

wpf text datepicker wpftoolkit

14
推荐指数
2
解决办法
2万
查看次数

删除未使用的模型,过时的内容类型提示

我从Django网站上删除了一个不必要的表和模型.我在调用migrations.DeleteModel(...)之前删除了所有的foriegn密钥引用,但是在运行迁移时我仍然收到以下提示:

以下内容类型陈旧且需要删除:

myapp | MyDeletedModel
Run Code Online (Sandbox Code Playgroud)

通过外键与这些内容类型相关的任何对象也将被删除.您确定要删除这些内容类型吗?如果您不确定,请回答"否".

Type 'yes' to continue, or 'no' to cancel: yes
Run Code Online (Sandbox Code Playgroud)

我很困惑为什么我收到这个提示有没有办法我可以阻止这个提示显示我们上线时?我们使用CI环境,我们没有用户可以回答"是"或"否"

谢谢

django django-migrations

9
推荐指数
1
解决办法
5883
查看次数

WeasyPrint页面大小错误.(8.27英寸x 11.69英寸)

我正在开发一个使用WeasyPrint输出文档的项目.对于我的生活,我无法弄清楚为什么它将页面大小默认为非标准页面大小.

我希望它默认为8.5 x 11英寸.相反,PDF格式为8.27 x 11.69英寸.

对于我的生活,我无法弄清楚为什么页面大小如此偏离.

有任何想法吗?

python weasyprint

8
推荐指数
1
解决办法
3773
查看次数

首次通话后抛出异常

我有一个循环,我处理将记录添加到zip文件.我已经模拟了我的zipfile对象,我想提出一个异常来验证我处理大型zip文件的逻辑是否能正常工作.

有没有办法让MagicMocks或普通模拟接受第一次调用,但是在第二次调用时引发异常?

python django mocking magicmock

7
推荐指数
2
解决办法
2228
查看次数

为什么在通过sp_executeSQL过程执行时,完全相同的SQL查询结果与不同的执行计划?

正如标题所述,我不明白为什么sp_executeSQL会生成与从Sql Management Studio运行查询完全不同的执行计划.

从SQL管理工作室运行时,我的查询将需要3秒钟,因为通过sp_executeSQL在管理工作室中运行的查询将花费5分钟.

我已经更新了统计数据,并查看了索引,但事实上仍然存在这样的事实:sp_executeSQL的执行计划比直接从我的管理工作室运行sql更糟糕.

所以这是我的问题:为什么执行计划在以这两种不同方式运行查询之间会有很大差异?

谢谢

t-sql sql-server sp-executesql sql-execution-plan

6
推荐指数
1
解决办法
3785
查看次数

.net Core MVC:不接受X-SRF-TOKEN,400返回

我有一个使用angularJS的.net核心应用程序,我想保护受基于cookie的身份验证保护的api调用.我按照本文中的步骤操作:

https://docs.microsoft.com/en-us/aspnet/core/security/anti-request-forgery

  • 我添加了services.AddAntiforgery(options => options.HeaderName = "X-XSRF-TOKEN");我的服务配置
  • XSRF-TOKEN在加载页面时在开发人员工具中看到了cookie.
  • 我看到X-XSRF-TOKEN标题被添加到我的$ http发送请求中.

  • 我已将[AutoValidateAntiforgeryToken]我的控制器添加到处理ajax请求的控制器中.

  • 我已启用ssl,并通过https访问这些页面.

我可以按预期通过此api端点使GET请求正常.但是,我收到400错误,没有任何有关PUT和POST请求错误的详细信息.

我知道这X-XSRF-TOKEN是请求,(在chrome dev工具的网络选项卡中看到)所以我不确定我缺少什么来允许正确接收这些请求.

TL; DR:为什么.net核心拒绝我的有效AntiforgeryToken?

更新尝试@ joey建议的解决方案,但它没有工作,仍然收到400个响应.下面的代码反映了我试图解决这个问题的另一个解决方案(aka angularjs的解决方案,为跨站点脚本保护设置默认cookie和标头)

我还尝试配置AngularJS来改变cookie和标题名称与我在我的配置中匹配的名称Startup.cs.我更改了他们的名字以尝试XSRF-TOKEN(cookie)和X-XSRF-TOKEN(标题)以及,CSRF-TOKEN并且X-CSRF-TOKEN,虽然angular中的配置正确使用我提供的新默认值,但.net核心中的身份验证代码仍然无效.

有关更多信息,请参阅我如何配置AngularJS:

app.config(function ($httpProvider) {
    $httpProvider.defaults.xsrfHeaderName = 'X-CSRF-TOKEN';
    $httpProvider.defaults.xsrfCookieName = 'CSRF-TOKEN';
});
Run Code Online (Sandbox Code Playgroud)

这是ConfigureServicesStartup.cs文件中的行:

services.AddAntiforgery(options => options.HeaderName = "X-CSRF-TOKEN");
Run Code Online (Sandbox Code Playgroud)

最后这里是我添加到文件Configure方法的Startup.cs代码:

    app.Use(next => context => 
    {
        string path = context.Request.Path.Value;
        if (path.Contains("/MyProtectedPath/")) …
Run Code Online (Sandbox Code Playgroud)

cookies csrf angularjs asp.net-core

6
推荐指数
1
解决办法
1291
查看次数

间歇性ASP.Net状态服务错误

我们在虚拟机上托管ASP.net网站.ASP.net会话状态服务正在运行.但是,我们每隔一段时间就得到以下异常:

消息:无法向会话状态服务器发出会话状态请求.请确保已启动ASP.NET状态服务,并且客户端和服务器端口是相同的.如果服务器位于远程计算机上,请通过检查HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection的值来确保它接受远程请求.如果服务器位于本地计算机上,并且前面提到的注册表值不存在或设置为0,则状态服务器连接字符串必须使用"localhost"或"127.0.0.1"作为服务器名称.

我已经验证会话状态服务正在运行,并且它正在尝试连接到本地主机:

<sessionState mode="StateServer" 
stateConnectionString="tcpip=127.0.0.1:42424" timeout="100"/>
Run Code Online (Sandbox Code Playgroud)

在我的研究中,我遇到了以下论坛帖子:http: //forums.asp.net/t/1409990.aspx

但除了尝试在SQL模式下运行会话状态之外,没有任何关于此问题的解决方案.

TL; DR:获取会话状态服务错误,说明服务没有响应,即使该服务在同一台计算机上运行.

.net asp.net iis session

5
推荐指数
1
解决办法
1579
查看次数

System.IO.File.WriteAllText会抛出特定文件名的异常

这必须是我见过的最奇怪的例外之一.使用File.WriteAllText静态方法写入文件时,无法写入特定文件名:"PRN".你可以用一个简单的衬垫重新创建它:

File.WriteAllText("c:\\Temp\\PRN.txt", "write this to a file");
Run Code Online (Sandbox Code Playgroud)

我尝试过不同的扩展,我尝试使用此方法写入不同的文件夹,但在所有情况下,尝试使用此特定文件名编写文件时会出现以下异常:

FileStream不会打开Win32设备,如磁盘分区和磁带驱动器.避免在路径中使用\"\\.\\".

堆栈跟踪如下所示:

   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.StreamWriter.CreateFile(String path, Boolean append, Boolean checkHost)
   at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize, Boolean checkHost)
   at System.IO.File.InternalWriteAllText(String path, String …
Run Code Online (Sandbox Code Playgroud)

.net c#

5
推荐指数
1
解决办法
1142
查看次数

WorkerRole log4net跟踪appender日志未出现在输出窗口中

我有许多工作者角色项目,我想利用log4net功能来记录信息.遗憾的是,我的日志中没有一个实际出现在我的输出窗口中.

我在调试器中跳过一个日志行,输出窗口反而吐出以下行:

'WaWorkerHost.exe'(CLR v4.0.30319:RdRuntime):已加载'C:\ WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.Caching\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Runtime.Caching.dll ".跳过加载符号.模块已经过优化,调试器选项"Just My Code"已启用.

看到这是我的代码,我很困惑为什么我看到这个例外.下面是我的日志app.config设置:

 <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      <section name="Montetary.Agents.HappyBirthday.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </sectionGroup>
  </configSections>
  <system.diagnostics>
    <trace>
      <listeners>
        <add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=2.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="AzureDiagnostics">
          <filter type="" />
        </add>
      </listeners>
    </trace>
  </system.diagnostics>
  <log4net>
    <appender name="AzureTraceAppender" type="log4net.Appender.TraceAppender">
      <layout type="log4net.Layout.PatternLayout">
        <!-- can be any pattern you like -->
        <conversionPattern value="%logger - %message" />
      </layout>
    </appender>
    <!-- does not have to be at the root …
Run Code Online (Sandbox Code Playgroud)

log4net azure-worker-roles azure-diagnostics

5
推荐指数
1
解决办法
397
查看次数