伙计们,我的asp.net 3.5应用程序中有一个usercontrol,我在按钮点击事件上传递一些纯文本.按钮位于usercontrol中.但是当我发射事件时,我收到以下错误;
无效的回发或回调参数.使用配置或页面中的<%@ Page EnableEventValidation ="true"%>启用事件验证.出于安全考虑,此功能可验证回发或回调事件的参数是否来自最初呈现它们的服务器控件.如果数据有效且符合预期,请使用ClientScriptManager.RegisterForEventValidation方法注册回发或回调数据以进行验证.
当我将EnableEventValidation ="false"设置为web表单页面时就像打击一样.它会引发事件;
<%@ Page EnableEventValidation="false" %>
Run Code Online (Sandbox Code Playgroud)
但我认为设置那个假不应该是个好主意.那么,这里的替代方案是什么?有错误说'使用ClientScriptManager.RegisterForEventValidation方法来注册回发或回调数据以进行验证."但我会在哪里注册那件事?谢谢 !
另外,我在usercontrol中使用了一些AjaxControlToolkit控件和一些jquery的东西.
我需要一个关于WCF流式文件传输的好例子.
我找到了几个并尝试了它们,但帖子很旧,我在.net 4和IIS 7上玩耍,所以有一些问题.
你能给我一个好的和最新的例子吗?
我在以前版本的WCF Web API上使用了类似下面的方法:
// grab the posted stream
Stream stream = request.Content.ContentReadStream;
// write it to
using (FileStream fileStream = File.Create(fullFileName, (int)stream.Length)) {
byte[] bytesInStream = new byte[stream.Length];
stream.Read(bytesInStream, 0, (int)bytesInStream.Length);
fileStream.Write(bytesInStream, 0, bytesInStream.Length);
}
Run Code Online (Sandbox Code Playgroud)
但在预览6中,HttpRequestMessage.Content.ContentReadStream财产已经消失.我相信它现在应该像这样:
// grab the posted stream
System.Threading.Tasks.Task<Stream> stream = request.Content.ReadAsStreamAsync();
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚在using语句中其余代码应该是什么样的.任何人都可以为我提供一种方法吗?
我刚刚开始深入研究Metro Style应用程序开发,我意识到当我查看应用程序的属性时,没有针对性的框架.
那么,我可以在WinRT Metro Stype Applications for Windows 8上使用我现有的.Net 4.0类库(或以前的类库)吗?
例如,我想得到Autofac并使用它,但我不确定它是否合适.
编辑
我认为它实际上是针对.Net Framework Core 4.5.
我厌倦了添加一个Check Constraint,到目前为止我只是失败了.解决这个问题的方法是什么:
Msg 1046,Level 15,State 1,Line 6
在此上下文中不允许子查询.只允许标量表达式.
这是代码:
ALTER TABLE dbo.PropertySeasonDiscount ADD CONSTRAINT
[CC_PropertySeasonDiscount_MadeFrom_MadeTo]
CHECK (
(SELECT COUNT(PropertySeasonDiscountId) FROM dbo.PropertySeasonDiscounts apsdeb
WHERE
(apsdeb.PropertySeasonId = PropertySeasonId) AND
(
(apsdeb.ValidForReservationsMadeTo >= ValidForReservationsMadeFrom AND ValidForReservationsMadeFrom >= apsdeb.ValidForReservationsMadeFrom) OR
(apsdeb.ValidForReservationsMadeFrom <= ValidForReservationsMadeTo AND ValidForReservationsMadeTo <= apsdeb.ValidForReservationsMadeTo)
)
) = 0
);
Run Code Online (Sandbox Code Playgroud) 我遇到了一个奇怪的行为,但我不确定我是否在这里正确的轨道.
我有一个控制器覆盖基类的OnException方法Controller.
public class ControllerFiltersController : Controller {
public ActionResult Index() {
throw new NotImplementedException();
}
protected override void OnException(ExceptionContext filterContext) {
Trace.TraceInformation(
"ControllerFiltersController Exception: " + DateTime.Now.ToString("hh:mm:ss.fff")
);
}
}
Run Code Online (Sandbox Code Playgroud)
我还有一个自定义的ExceptionFilter,如下所示:
public class HandleErrorCustom : IExceptionFilter {
public void OnException(ExceptionContext filterContext) {
Trace.TraceInformation(
"HandleErrorCustom Exception Message: " + DateTime.Now.ToString("hh:mm:ss.fff")
);
}
}
Run Code Online (Sandbox Code Playgroud)
然后,我将其注册为全局过滤器:
public static void RegisterGlobalFilters(GlobalFilterCollection filters) {
filters.Add(new HandleErrorCustom());
}
Run Code Online (Sandbox Code Playgroud)
我的预期是这里的控制器实例过滤器,因为它们提供的过滤器的顺序全球过滤器之前运行ControllerInstanceFilterProvider是Int32.MinValue和它们的范围FilterScope.First.
正如此处所解释的:ASP.NET MVC 3服务位置,第4部分:过滤器 …
当我们处理ASP.NET Web API中的一些可扩展性点时,我们还处理TAP(基于任务的编程模式).在某些方面,我们希望提供一个异步方法的延续,ContinueWith并在我们传递给委托的内部做一些事情ContinueWith.
布拉德·威尔逊解释这里深入了的SynchronizationContext是至关重要的,当我们提供延续.对我来说,我需要回到SynchronizationContextASP.NET Web API 的唯一地方是我需要使用的地方HttpContext.Current(这是我在ASP.NET Web API应用程序中永远不会做的事情)和地方我需要为线程设置一些信息,比如Thread.CurrentPrincipal.
所以问题是:我们是否想要回到SynchronizationContext我们在某些可扩展性点(例如消息处理程序,过滤器,格式化程序等)中提供延续的时候?
我创建了以下简单的HttpListener同时提供多个请求(在.NET 4.5上):
class Program {
static void Main(string[] args) {
HttpListener listener = new HttpListener();
listener.Prefixes.Add("http://+:8088/");
listener.Start();
ProcessAsync(listener).ContinueWith(task => { });
Console.ReadLine();
}
static async Task ProcessAsync(HttpListener listener) {
HttpListenerContext ctx = await listener.GetContextAsync();
// spin up another listener
Task.Factory.StartNew(() => ProcessAsync(listener));
// Simulate long running operation
Thread.Sleep(1000);
// Perform
Perform(ctx);
await ProcessAsync(listener);
}
static void Perform(HttpListenerContext ctx) {
HttpListenerResponse response = ctx.Response;
string responseString = "<HTML><BODY> Hello world!</BODY></HTML>";
byte[] buffer = Encoding.UTF8.GetBytes(responseString);
// Get a response stream …Run Code Online (Sandbox Code Playgroud) 在SignalR中,实现ITransportHeartbeat.GetConnections()应该为我提供一个被跟踪的连接列表.在我的一个案例中,我总是得到一个不再存在的Web套接字连接.
以下是我检索默认ITransportHeartbeat实例的方法:
SignalRAutofac.Initialize();
IDependencyResolver resolver = GlobalHost.DependencyResolver;
ITransportHeartbeat heartbeat = resolver.Resolve<ITransportHeartbeat>();
Run Code Online (Sandbox Code Playgroud)
我假设SignalR在特定时间间隔内向跟踪的连接发送心跳.是这样的吗?如果是,我没有看到从列表中删除5分钟的死连接.这通常吗?应该在AppDomain的整个生命周期中存在死连接吗?
我正在尝试在我现在正在处理的一个应用程序中应用DDD,但我不能说我已经100%掌握了它.
在我看到的大多数示例中,似乎是我们试图避免在域实体属性上使用公共setter.例如,我看到如下实现的域实体:
public class Product
{
public Product(string name)
{
if (name == null)
{
throw new ArgumentNullException("name");
}
Name = name;
}
public string Name { get; private set; }
public void UpdateName(string newName)
{
if (newName == null)
{
throw new ArgumentNullException("newName");
}
Name = newName;
DomainEvents.Raise(new ProductNameUpdatedEvent(this));
}
}
Run Code Online (Sandbox Code Playgroud)
用法看起来像:
// have a Product object instance here somehow
product.UpdateName("foobar");
Run Code Online (Sandbox Code Playgroud)
但是,我可以通过在Name属性的setter 上实现更新逻辑来实现相同的行为,如下所示:
public class Product
{
private string _name;
public Product(string name)
{
if …Run Code Online (Sandbox Code Playgroud) c# ×6
.net ×4
asp.net ×2
asynchronous ×2
asp.net-mvc ×1
constraints ×1
http ×1
httplistener ×1
security ×1
signalr ×1
sql ×1
sql-server ×1
system.net ×1
t-sql ×1
wcf ×1
wcf-web-api ×1
windows-8 ×1