我有以下代码片段:
string tmp = String.Format("<SCRIPT FOR='window' EVENT='onload' LANGUAGE='JavaScript'>javascript:window.open('{0}');</SCRIPT>", url);
ClientScript.RegisterClientScriptBlock(this.GetType(), "NewWindow", tmp);
Run Code Online (Sandbox Code Playgroud)
此代码生成的URL包括端口号,我认为这是发生的,因为网站使用端口80,在此代码中我尝试从网站的虚拟目录加载页面.有关如何抑制此代码生成的URL字符串中的端口号的任何想法?
我在我的本地IIS服务器上运行了一个WCF服务.我已将其添加为C#Website Project的服务引用,并且它会添加正常并自动生成代理类.
但是,当我尝试调用任何服务合同时,我收到以下错误:
描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
异常详细信息: System.ServiceModel.ProtocolException:内容类型text/html; 所述响应消息不匹配的结合(;字符集= UTF-8应用/肥皂+ XML)的内容类型的字符集= UTF-8.如果使用自定义编码器,请确保正确实现IsContentTypeSupported方法.响应的前1024个字节是:'function bredir(d,u,r,v,c){var w,h,wd,hd,bi; var b = false; var p = false; var s = [[ 300250,假],[250250,假],[240400,假],[336280,假],[180150,假],[468,60,假],[234,60,假],[88,31,假],[120,90,假],[120,60,假],[120240,假],[125125,假],[728,90,假],[160600,假],[120600,假] [300600,假],[300125,假],[530300,假],[190200,假],[470250,假],[720300,真],[500350,真],[550480,真]]; if(typeof(window.innerHeight)=='number'){h = window.innerHeight; w = window.innerWidth;} else if(typeof(document.body.offsetHeight)=='number'){h = document. body.offsetHeight; w = document.body.offsetWidth;} for(var i = 0; i
我还有一个控制台应用程序,它也与WCF服务通信,控制台应用程序能够调用方法,而不会出现此错误.
以下是我的配置文件的摘录.
WCF服务Web.Config:
<system.serviceModel>
<services>
<service name="ScraperService" behaviorConfiguration="ScraperServiceBehavior">
<endpoint address=""
binding="wsHttpBinding"
bindingConfiguration="WSHttpBinding_IScraperService"
contract="IScraperService" />
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://example.com" />
</baseAddresses>
</host>
</service>
</services>
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_IScraperService"
bypassProxyOnLocal="false" transactionFlow="false" …
Run Code Online (Sandbox Code Playgroud) 我有一个.NET Standard 1.4类库,它引用了System.ComponentModel.Annotations(4.3.0)NuGet包.
然后,我将从.NET Framework 4.6.2测试项目中引用此类库.它构建良好,但在运行时我收到以下错误:
发生System.IO.FileLoadException HResult = 0x80131040
消息= 无法加载文件或程序集'System.ComponentModel.Annotations,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)
我尝试从net462项目添加对System.ComponentModel.Annotations(4.3.0)NuGet包的引用,但这没有任何区别.
我尝试从net462项目中添加对.NET标准库的引用,但仍然没有运气.
我在这里错过了什么吗?这是一个已知的错误,如果有的话有解决方法吗?
任何帮助深表感谢!
我将参与一个涉及许多元素的项目:
为了让所有这些单独的应用程序与数据库通信,我的直接想法是使用WCF服务.
但是,我现在需要向站点添加API以允许第三方从他们自己的应用程序中选择,插入和更新记录.
在我看来,我只是在我的WCF服务上创建一个单独的RESTful服务端点,它将使用身份验证锁定,并且只能访问某些方法.
但是,我今天一直在阅读MVC 4中的Web API功能,这是RESTful API的最新功能吗?
我是否应该继续使用Web API?或者因为我的其他应用程序需要Web服务,我应该坚持使用WCF服务吗?
我正在使用nopCommerce,我需要添加我唯一的Action Filter,但是,我不想修改核心控制器以避免在发布新更新时覆盖我的代码.
我已经设置了我的动作过滤器:
public class ProductActionFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
if (filterContext.Result is ViewResult)
{
...
}
base.OnActionExecuted(filterContext);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我要修改控制器,我可以添加[ProductActionFilter]
到我希望它分配给的操作.
有没有办法可以在不修改控制器的情况下将自定义操作过滤器注册到特定操作?
我正在尝试转换HTML代码,例如XXX; (其中XXXX是一个数字)使用经典ASP(VBScript)的纯文本.
我正在将文本添加到纯文本格式的电子邮件中,如果我将它们添加为HTML代码,它只显示代码并且不会转换它们.
一个修复方法是将电子邮件更改为HTML,这确实解决了该问题,但随后导致我的电子邮件出现其他问题,我将不会介绍.
是否有内置函数或自定义函数可用于将这些HTML代码转换为纯文本?
我正在使用UIImagePickerController
拍照然后将照片上传到WCF Service
.随着图像,我还需要发送到照片的纬度和经度.
如何从拍摄的照片中获取此信息?
我在网上搜索过,但似乎无法找到一个好的信息来源.我已经看到了作为委托方法的一部分EXIF
通过UIImagePickerControllerMediaMetadata
密钥传递的数据didFinishPickingMediaWithInfo
.但是,当我将内容打印到日志时,没有位置信息.
我错过了什么,我是否需要在拍照前打开位置服务?或者有另一种获取信息的方法吗?
非常感谢.
我需要根据从数据库返回的数据构建一个单选按钮列表.每个按钮都需要有一个与之关联的值,我可以根据所选按钮获取该值.
理想情况下,我只是使用RadioButtonList
控件,但是,我需要一个非常自定义的布局,RadioButtonList
似乎无法处理.
另一种方法是创建单独的RadioButton
s并将它们包装在Panel中以对它们进行分组.但是,似乎没有一个Value属性RadioButton
?
是否有另一种方法可以为RadioButton
控件设置值?或者,一种完全自定义RadioButtonList
输出的方法.
目前,我想我可能不得不求助于使用HTML单选按钮runat="server"
,必须是更好的方式......?
我注意到,使用.NET MVC站点,您可以使用多个正斜杠命中URL,例如:
http://www.example.com//category
http://www.example.com//category//product
Run Code Online (Sandbox Code Playgroud)
URL加载正常,一切正常,但是,我被要求阻止这种情况发生.
我一直在尝试使用IIS URL重写来使其工作:
<rewrite>
<rules>
<rule name="Remove multiple slashes" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{UNENCODED_URL}" matchType="Pattern" pattern="^(.*)//(.*)$" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="{C:1}/{C:2}" />
</rule>
</rules>
</rewrite>
Run Code Online (Sandbox Code Playgroud)
然而,结果似乎很有气质.有时产品URL会重定向,有时它不会和类别一样.这几乎就像应用程序正在缓存URL一样.
有没有人知道我是否可以禁用任何缓存,或者是否有其他方法来解决这个多次斜杠问题?
任何帮助深表感谢.
在我的C#Web API中,我正在尝试添加一个全局异常处理程序.我一直在使用自定义全局ExceptionFilterAttribute
来处理异常并返回HttpResponseMessage
:
public override void OnException(HttpActionExecutedContext context)
{
...
const string message = "An unhandled exception was raised by the Web API.";
var httpResponseMessage = new HttpResponseMessage(HttpStatusCode.InternalServerError)
{
Content = new StringContent(message),
ReasonPhrase = message
};
context.Response = httpResponseMessage;
}
Run Code Online (Sandbox Code Playgroud)
这适用于处理在控制器级别抛出的异常.
但是,在开发期间,由于数据库连接问题,我们从OWIN启动文件中抛出了错误,但是,返回了标准的IIS异常,而不是通过全局异常处理程序,并且完整的HTML被返回给我们的API使用者.
我尝试了几种不同的方法来捕获我的OWIN启动中抛出的异常:
定制ApiControllerActionInvoker
:
public class CustomActionInvoker : ApiControllerActionInvoker
{
public override Task<HttpResponseMessage> InvokeActionAsync(HttpActionContext actionContext, CancellationToken cancellationToken)
{
var result = base.InvokeActionAsync(actionContext, cancellationToken);
if (result.Exception != null && result.Exception.GetBaseException() != null)
{
...
} …
Run Code Online (Sandbox Code Playgroud) c# ×6
.net ×4
asp.net ×3
asp.net-mvc ×2
wcf ×2
asp-classic ×1
exception ×1
html ×1
iis ×1
ios ×1
iphone ×1
objective-c ×1
owin ×1
radio-button ×1
rewrite ×1
vbscript ×1
web-services ×1