我们有一个带有以下资源URL的web api.
http://www.example.com/book/bookid/name/bookname
Run Code Online (Sandbox Code Playgroud)
现在有一些书籍包含带有&符号'&'的名字,当我们要求这些名称时,我们收到以下错误
使用的网址:
http://www.example.com/book/123/name/ban&ban
Run Code Online (Sandbox Code Playgroud)
错误:从客户端检测到潜在危险的Request.Path值(&)
我们尝试传递或使用编码值为&即%26并获得相同的错误.
使用的网址:
http://www.example.com/book/123/name/ban%26ban
Run Code Online (Sandbox Code Playgroud)
错误:从客户端检测到潜在危险的Request.Path值(&)
现在,当我在httpruntime元素的web.config中添加了requestPathInvalidCharacters =""属性时,它开始适用于上述两个URL.但是,当我阅读不同的文章时,据说使用requestPathInvalidCharacters =""属性不是一个好习惯.
另外,由于生产中有很多书名和"&"以及不同的特殊字符,我们不能避免为书名发送"&"&符号,有没有一个好方法来处理这个?
我们有FeatureFlag:IsServiceNeeded,在Azure应用程序配置的功能管理器中没有设置标签。我们通过设置缓存间隔在内置方法 AddAzureAppConfiguration 中使用。
我们正在使用 .net core 3.1 Web api 和 Azure 应用程序配置的功能管理器。
我们在应用程序初始化期间启用了 IsServiceNeeded,几个小时后,我们禁用了 IsServiceNeed。我们等待了一整天,但没有看到差异,因为下面返回 true 而不是 false。由于我们在 program.cs 文件中的配置方式,我们预计它每 3 分钟更新一次。
await _featureManager.IsEnabledAsync("IsServiceNeeded")
Run Code Online (Sandbox Code Playgroud)
如果您发现下面有任何奇怪的地方,请告诉我。提前致谢,
这是我们正在使用它的代码片段。
程序.cs文件
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((context, config) =>
{
var configurationRoot = config.Build();
var appConfigConString = configurationRoot["AppConfigConnectionString"];
config.AddAzureAppConfiguration(options => options.Connect(appConfigConString).UseFeatureFlags(featureFlagOptions => {
**featureFlagOptions.CacheExpirationInterval = TimeSpan.FromMinutes(3);**
}));
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
Run Code Online (Sandbox Code Playgroud)
Startup.cs 文件
public class Startup
{ …Run Code Online (Sandbox Code Playgroud) azure .net-core asp.net-core azure-app-configuration feature-flags
我们在 Azure 表存储中有一个表,自新实施以来目前有 50,000 个项目。
PartitionKey:字符串形式的日期时间值
RowKey:字符串形式的数值
我们用来TableQuery生成过滤条件。PartitionKey 过滤器类似于:PartitionKey ge '201801240000000000' && "PartitionKey lt '201806220000000000'"
不幸的是,我们无法使用 RowKey 过滤器,因为我们需要两个日期之间的数据。
要获取大约一个月的数据,大约需要 5 秒。而要取3个月左右的时间,则需要更多的时间。
尽管我们有适当的缓存策略,但第一次获取数据需要很长时间。就像数据上的过滤器在日期发生变化时需要很长时间一样。
任何提高性能的建议将不胜感激。
当我在 TFS 中获得任何项目的最新版本时,所有更改(主要是包)都将检测到更改。看到他们后我该怎么办?提升它们会包含在 TFS 中的更改,而忽略它们会在构建解决方案时忽略它们。从磁盘中删除它们会完全删除它们。
我应该怎么做才能获得没有所有这些复杂性的最新版本?
我的代码中有一个名为 CarValues 的字典,其中包含以下数据: CarValues 是在状态中初始化的字典。
dictionary: CarValues
key ==> string
Value ==> Array
key => Honda, Value => white, yellow, red, orange
key => Toyota, Value => white, yellow, green, black
Key => Volkswagen Value => 123, 456, 343
Run Code Online (Sandbox Code Playgroud)
我想从 CarValues 中完全删除本田及其价值。虽然,我很少看到类似的问题,但我找不到这个问题的最佳解决方案。
以下是我目前的 json 响应。
{
firstName: "xyz",
lastName: "efh",
id: 123,
key: ''
}
Run Code Online (Sandbox Code Playgroud)
如果属性是一个空字符串(如上述响应中的 key),如何忽略该属性。我知道如何在 aa 属性为空时忽略它,但在它为空时不知道。
我有一个类,其中有一个无参数构造函数。但是当这个构造函数被调用时,类的五个属性从构造函数的配置文件中获取值。类中有两个方法使用在构造函数中初始化的参数。
我想使用模拟框架为两种方法编写单元测试。但是,我不确定如何在构造函数中初始化参数,因为调用该方法不会为这些属性提供值。
public class ABC
{
public ABC()
{
a = ConfigurationManager.AppSetting["GetValue"];
b = ConfigurationManager.AppSetting["GetValue1"];
}
public int Method1(IDictionary<string, string> dict)
{
d = a + b /2; (how to mock values of a and b while writing unit tests
using mock framework. In reality, a in my case is
dictionary)
//some business logic
return d;
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢,
c# ×3
c#-4.0 ×2
.net ×1
.net-core ×1
asp.net-core ×1
azure ×1
javascript ×1
json.net ×1
moq ×1
moq-3 ×1
react-native ×1
reactjs ×1
tfs ×1
tfvc ×1
unit-testing ×1