我正在.NET中构建一个Web服务,它将通过XML来回传递数据.我想使用我定义的XSD验证传入请求中的XML.
这是XSD:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="POSearch">
<xs:sequence minOccurs="0" maxOccurs="10">
<xs:element name="POID" type="xs:positiveInteger"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)
这是XML:
<POSearch>
<POID>1</POID>
<POID>2</POID>
</POSearch>
Run Code Online (Sandbox Code Playgroud)
这是C#中的验证代码:
static void Main(string[] args){
XmlSchemaSet iSchemas = new XmlSchemaSet();
iSchemas.Add(string.Empty, @"...xsd file location");
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessInlineSchema;
settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessSchemaLocation;
settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings;
settings.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack);
settings.Schemas.Add(iSchemas);
XmlReader reader = XmlReader.Create(@"...xml file location", settings);
try {
while(reader.Read())
;
}
catch(Exception ex) {
Console.WriteLine(ex.Message);
}
}
private static void …Run Code Online (Sandbox Code Playgroud) 我有一个奇怪的情况,我无法始终如一地复制。我有一个在 .NET Core 3.0 中开发的 MVC 网站,并使用 .NET Core Identity 授权用户。当我在本地开发环境中运行该站点时,一切正常(经典的“在我的机器上运行!”)。当我将它部署到我的登台 Web 服务器时,我开始发现问题。用户可以成功登录,通过身份验证,并重定向到主页。注意:除了一个处理身份验证的控制器,所有控制器都用[Authorize]属性和[AutoValidateAntiforgeryToken]属性。主页加载得很好。但是,有几个 ajax 调用在页面加载时运行,回调到 Home 控制器以加载一些条件数据并检查是否已经设置了一些会话级别的变量。这些 ajax 调用返回 401 Unauthorized. 问题是我无法始终如一地重复这种行为。我实际上有另一个用户同时登录(相同的应用程序,相同的服务器),并且对他们来说效果很好。我在 Chrome 中打开了开发者控制台,并将我认为的问题归结为一个常见(或不常见)的因素。工作的调用(例如加载主页,或其他用户成功的 ajax 调用)具有“.AspNetCore.Antiforgery”、“.AspNetCore.Identity.Application”和“.AspNetCore.Session”在请求标头中设置的 cookie。不起作用的调用(我的 ajax 调用)只有“.AspNetCore.Session”cookie 集。另一件需要注意的是,这种行为会发生在网站上的每个 ajax 调用中。通过导航或表单发布对控制器操作的所有调用都可以正常工作。
令我感到奇怪的是,另一个用户可以登录,甚至我也可以在新发布后偶尔登录,并且在正确设置 cookie 的情况下,这些 ajax 调用工作得很好。
下面是一些更具体的代码。不确定是不是我在 Identity 或 Session 配置中设置了错误。
启动文件
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public IWebHostEnvironment Env { get; set; }
// This …Run Code Online (Sandbox Code Playgroud) 我已经在互联网上寻找一个明确的答案,找不到一个.它代表什么?我目前正在尝试为我们的开发团队建立一个新的回购,我想知道这个术语的含义.
我正在尝试使用IIS Express在本地计算机上托管Web服务.我可以开始调试一次.每次我尝试运行项目后,每次都会出现一个"无法启动调试"的对话框.如果我关闭VS 2012然后打开备份它再次工作.我在这篇文章中看到了这个问题.我相信这与我几天前的密码更改有关.但是,我找不到我的凭据存储位置,我不知道如何更改此配置.请帮忙!
更新:
如果我尝试运行本地控制台应用程序,会发生同样的事情.这意味着(我认为)它是一个VS设置.我不得不关闭VS并每次重新启动它.但是,我确实发现如果我关闭这些任务然后调试它的工作原理:
有任何想法吗?
我有一个使用 Entity Framework 3.1.6 的 .NET Core 3.1 中的 MVC 网站。我的问题是我的实体之一现在抛出错误:
System.ArgumentException:已添加具有相同键的项目。关键词:评估员
直到最近它都运行良好,我不确定发生了什么变化。
模型
public class FacilityQCResult
{
[Key]
public int ID { get; set; }
public Guid? QCID { get; set; }
public string QCSeverity { get; set; }
public string QCType { get; set; }
public string QCShortName { get; set; }
public string Resolution { get; set; }
public string Base { get; set; }
public string FacilityNumber { get; set; }
public string FacilityName { get; …Run Code Online (Sandbox Code Playgroud) c# ×4
.net ×1
.net-core ×1
ajax ×1
asp.net-core ×1
asp.net-mvc ×1
debugging ×1
fsfs ×1
iis-express ×1
repository ×1
sql-server ×1
svn ×1
web-services ×1
xml ×1
xsd ×1