我以为我会尝试使用Scott Guthrie 关于代码优先开发实体框架4 的最新帖子.而不是使用Sql Server,我正在尝试使用MySql.以下是我的web.config的相关部分(这是一个Asp.Net MVC 2应用程序):
<connectionStrings>
<add name="NerdDinners"
connectionString="Server=localhost; Database=NerdDinners; Uid=root; Pwd=;"
providerName="MySql.Data.MySqlClient"/>
</connectionStrings>
<system.data>
<DbProviderFactories>
<add name="MySQL Data Provider"
invariant="MySql.Data.MySqlClient"
description=".Net Framework Data Provider for MySQL"
type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.2.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
Run Code Online (Sandbox Code Playgroud)
就像教程一样,我希望EF4能够自动为我生成数据库.相反,它会抛出一个ProviderIncompatibleException,内部异常抱怨NerdDinners数据库不存在.
很公平; 我去为它创建了MySql数据库只是为了看看事情是否可行,而是获得了另一个ProviderIncompatibleException.这次,"提供商不支持DatabaseExists".
我承认,这是我第一次真正钻研实体框架(我主要坚持使用Linq to Sql),而这一切都是在上周才发布的Code-First CTP上运行的.那就是说,我在这里做错了什么,或者是一个可以解决的已知问题?
这似乎是一个非常明显的,基本的东西,期待从图谱API,但我遇到了严重的困难.我想要做的就是获取任何特定URL的ID.他们有一个方法:
https://graph.facebook.com/?ids=http://www.imdb.com/title/tt0117500/
Run Code Online (Sandbox Code Playgroud)
这很有效.但如果我尝试另一个网址,比如我的博客,
https://graph.facebook.com/?ids=http://dusda.vox.com
Run Code Online (Sandbox Code Playgroud)
它没有像我所有的例子那样给我一个数字ID.相反,这个:
{"http:\/\/dusda.vox.com":{"id":"http:\/\/dusda.vox.com"}}
Run Code Online (Sandbox Code Playgroud)
如果我尝试使用那个"id",我会得到插孔(可能是因为查询字符串看起来无法解析):
Request: https://graph.facebook.com/http://dusda.vox.com/likes
Response: {"id":"http:\/\/dusda.vox.com\/likes"}
Run Code Online (Sandbox Code Playgroud)
那么这有什么用呢?Graph API是选择性可靠的,还是我误解了什么?我已经尝试过我知道在Facebook上流行的网址,而且我的结果好坏参半.
我有一个特定的控制器动作被调用两次,除了奇怪之外导致我的应用程序的单个部分出现问题(不是真正的问题,它只是引起我的双重调用).
知道为什么控制器动作每次都要执行两次吗?
我正在尝试为Visual Studio编写一个加载项,除其他外,需要跟踪Visual Studio解决方案中的每个文件.我知道我需要订阅什么事件(当打开解决方案时,在其中添加/删除/编辑文件时,项目中的文件相同等),但我不明白如何实际获取文件列表从任何一个.
我最近安装了CodeRush并且一直在使用DXCore框架.我对插件的方法感到非常满意,但我仍然没有看到一个明显的方法来获取解决方案中的文件列表.
总结一下:如何通过Visual Studio SDK 或 DXCore获得解决方案及其项目中可靠的文件列表?
我已将Output Caching添加到我的应用程序中的几个操作中,以便轻松提升性能.但是,这些操作还需要通过命中Redis数据库在每个请求(它是一个视图计数器)后递增一个计数器.
首先,我想我可以调整动作过滤器执行的顺序,以确保计算视图:
public class CountersAttribute : ActionFilterAttribute
{
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
//increment my counter all clever like
base.OnResultExecuted(filterContext);
}
}
Run Code Online (Sandbox Code Playgroud)
但那没用; 显然,OutputCacheAttribute的行为与普通的动作过滤器不同.然后我尝试实现自定义输出缓存:
public class OutputCacheWithCountersAttribute : OutputCacheAttribute
{
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
//straight to the source to get my headcount!
base.OnResultExecuted(filterContext);
}
}
Run Code Online (Sandbox Code Playgroud)
不,也没用; 缓存操作后,操作过滤器似乎完全被忽略.游民.
所以,呃,有没有办法(没有实现自定义输出缓存提供程序),以确保我的观点被正确计算,这是干净和明智的?
我有一个可嵌入的iframe,将在第三方网站上使用.它有几种形式可以填写,最后必须告知父页面它已完成.
换句话说,iframe需要在单击按钮时将消息传递给它的父级.
在浏览了"No,跨域策略是一个混蛋"的海洋之后,我找到了window.postMessage,它是HTML5草案规范的一部分.
基本上,您将以下JavaScript放在页面中以捕获来自iframe的消息:
window.addEventListener('message', goToThing, false);
function goToThing(event) {
//check the origin, to make sure it comes from a trusted source.
if(event.origin !== 'http://localhost')
return;
//the event.data should be the id, a number.
//if it is, got to the page, using the id.
if(!isNaN(event.data))
window.location.href = 'http://localhost/somepage/' + event.data;
}
Run Code Online (Sandbox Code Playgroud)
然后在iframe中,有一些JavaScript向父母发送消息:
$('form').submit(function(){
parent.postMessage(someId, '*');
});
Run Code Online (Sandbox Code Playgroud)
太棒了吧?唯一的问题是它似乎不适用于任何版本的IE.所以,我的问题是这样的:鉴于我需要将一条消息从 iframe 传递给它的父节点(我控制它们),我可以使用哪种方法可以在任何(> IE6)浏览器中使用吗?
我有一个搜索Api,我正在努力,需要在一个Html块中返回搜索结果(使用客户端已经定义的样式).我还想在Json中返回结果,以便我们最终将使用的未来Api内容.目前,路线看起来像这样:
/api/1/search/json?param1=blah¶m2=blah&etc
/api/1/search/html?param1=blah¶m2=blah&etc
Run Code Online (Sandbox Code Playgroud)
作为参考,此处的模式为/ {area}/1/{controller}/{action}.
我喜欢一些Api的外观,我看到返回的结果会有不同的格式,具体取决于它们在url中的'扩展',la:
/api/1/search.json?param1=blah¶m2=blah&etc
Run Code Online (Sandbox Code Playgroud)
但是,我还没有想出如何配置Asp.Net的Mvc路由来支持这种风格.ApiAreaRegistration.cs中的常规路由是:
context.MapRoute(
"Api_default",
"Api/1/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional });
Run Code Online (Sandbox Code Playgroud)
我尝试了以下定义的一般,但不起作用:
//search api
context.MapRoute(
"searchJson",
"api/1/{controller}.{action}",
new { controller = "SearchController" });
Run Code Online (Sandbox Code Playgroud)
如何配置路由以启用.format样式的URL?
我有大约110,000张各种格式的图像(jpg,png和gif)和大小(2-40KB)本地存储在我的硬盘上.我需要将它们上传到Azure Blob存储.在这样做时,我需要设置一些元数据和blob的ContentType,否则它是一个直接的批量上传.
我目前正在使用以下内容来处理一次上传一个图像(并行超过5-10个并发任务).
static void UploadPhoto(Image pic, string filename, ImageFormat format)
{
//convert image to bytes
using(MemoryStream ms = new MemoryStream())
{
pic.Save(ms, format);
ms.Position = 0;
//create the blob, set metadata and properties
var blob = container.GetBlobReference(filename);
blob.Metadata["Filename"] = filename;
blob.Properties.ContentType = MimeHandler.GetContentType(Path.GetExtension(filename));
//upload!
blob.UploadFromStream(ms);
blob.SetMetadata();
blob.SetProperties();
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否还有其他技术可以用来处理上传,尽可能快.此特定项目涉及将大量数据从一个系统导入另一个系统,并且出于客户原因,它需要尽快发生.
在Rentler,我们经常看到错误
System.FormatException,String未被识别为有效的布尔值
在我们的健康监测中.事实证明,看起来我们的客户偶尔会在其他地方复制/粘贴网址时截断网址的末尾.恰好,布尔参数往往位于字符串的末尾,当客户通过某个社交网络共享它时,我们会收到错误报告.
https:// {domain}/search?sid = 17403777&nid = 651&location = 840065&propertytypecode = 1&photosonly = fals
我们对所有东西使用模型绑定,所以我不确定如何处理这个问题.我可以将属性更改为字符串并尝试在控制器操作中解析它,但这很邋..是否有任何简单,流畅的方式将模型绑定器提供给TryParse()它,如果它不能解决为false?
我有以下 jQuery(服务名称已更改):
var url = "http://localhost/services/MyService.svc/addentrant";
var stuff = $("#signup-form").serializeArray();
$.ajax({
type: "POST",
url: url,
contentType: "application/json; charset=utf-8",
data: stuff,
timeout: 10000,
success: function (obj) { alert('yay!'); }
});
Run Code Online (Sandbox Code Playgroud)
上面的代码向我的本地 IIS7.5 服务器上的 Sitefinity 中托管的 WCF 服务发出请求。下面是相关的web.config:
<endpointBehaviors>
<behavior name="jsonBehavior">
<webHttp/>
</behavior>
...
<serviceBehaviors>
<behavior name="DefaultBehavior">
<serviceMetadata httpGetEnabled="true"/>
</behavior>
...
<services>
<service behaviorConfiguration="DefaultBehavior" name="Services.MyService" >
<endpoint address="" behaviorConfiguration="jsonBehavior" binding="webHttpBinding" contract="Services.IMyService" bindingConfiguration=""/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
...
Run Code Online (Sandbox Code Playgroud)
最后是MyService的接口和实现:
[ServiceContract(Name = "MyService", Namespace = "http://myservice.com/services/2010/")]
public interface IMyService
{
[OperationContract,
WebInvoke(Method = …Run Code Online (Sandbox Code Playgroud) asp.net-mvc ×5
c# ×4
add-in ×1
ajax ×1
azure ×1
blobstorage ×1
code-first ×1
ctp ×1
dxcore ×1
embed ×1
html5 ×1
iframe ×1
javascript ×1
jquery ×1
json ×1
mysql ×1
outputcache ×1
plugins ×1
post ×1
reliability ×1
wcf ×1