- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有一个 JSONP WCF 端点,我正在尝试找出我收到 504 错误的原因。
HTTP/1.1 504 Fiddler - Receive Failure
Content-Type: text/html
Connection: close
Timestamp: 11:45:45:9580
ReadResponse() failed: The server did not return a response for this request.
我可以在我的端点内的任何地方设置一个断点,单步执行代码,看到它成功地收集了响应所需的数据,点击代码的最后一行,然后一旦我退出 WCF 调用,我就会得到一个504 错误。 这是上周的工作!
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceContract(Name = "NegotiateService", Namespace = "http://rivworks.com/Services/2009/01/15")]
public class NegotiateService //: svcContracts.INegotiateService
{
public NegotiateService() { }
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json)]
public dataObjects.NegotiateSetup GetSetup(string method, string jsonInput)
{
dataObjects.NegotiateSetup resultSet = new dataObjects.NegotiateSetup();
using (RivFeedsEntities1 _dbFeed = new FeedStoreReadOnly(AppSettings.FeedAutosEntities_connString, "", "").ReadOnlyEntities())
{
using (RivEntities _dbRiv = new RivWorksStore(AppSettings.RivWorkEntities_connString, "", "").NegotiationEntities())
{
// Deserialize the input and get all the data we need...
Newtonsoft.Json.Linq.JObject o = Newtonsoft.Json.Linq.JObject.Parse(jsonInput);
string urlRef = String.Format("{0}", o["ref"]).Replace("\"", "");
string clientDate = String.Format("{0}", o["dt"]).Replace("\"", "");
string ProductID = String.Format("({0})", o["productId"]).Replace("\"", "");
string SKU = String.Format("{0}", o["sku"]).Replace("\"", "");
string env = String.Format("{0}", o["env"]).Replace("\"", "");
IList<Product> efProductList = null;
Product workingProduct = null;
vwCompanyDetails workingCompany = null;
bool foundItem = false;
if (!String.IsNullOrEmpty(SKU))
efProductList = _dbRiv.Product.Include("Company").Where(a => a.SKU == SKU).ToList();
else if (!String.IsNullOrEmpty(ProductID))
efProductList = _dbRiv.Product.Include("Company").Where(a => a.ProductId == new Guid(ProductID)).ToList();
foreach (Product product in efProductList)
{
if (String.IsNullOrEmpty(product.URLDomain))
{
var efCompany = _dbRiv.vwCompanyDetails
.Where(a => a.defaultURLDomain != null && a.CompanyId == product.Company.CompanyId)
.FirstOrDefault();
if (efCompany != null && urlRef.Contains(efCompany.defaultURLDomain))
{
foundItem = true;
workingProduct = product;
workingCompany = efCompany;
}
}
else
{
if (urlRef.Contains(product.URLDomain))
{
foundItem = true;
workingProduct = product;
workingCompany = _dbRiv.vwCompanyDetails
.Where(a => a.CompanyId == product.Company.CompanyId)
.FirstOrDefault();
}
}
}
if (foundItem)
{
try
{
// Update the resultSet...
if (workingProduct != null && workingCompany != null)
{
string rootUrl = String.Empty;
try
{
rootUrl = AppSettings.RootUrl;
}
catch
{
rootUrl = env + @"/";
}
resultSet.button = workingProduct.ButtonConfig;
resultSet.swfSource = String.Format(@"{0}flash/negotiationPlayer.swf", rootUrl);
resultSet.gateway = rootUrl;
resultSet.productID = workingProduct.ProductId.ToString();
resultSet.buttonPositionCSS = workingProduct.buttonPositionCSS;
}
}
catch (Exception ex)
{
log.WriteLine(" ERROR: ", ex.Message);
log.WriteLine("STACK TRACE: ", ex.StackTrace);
}
}
}
}
return resultSet;
}
}
我的 web.config:
<!-- WCF configuration -->
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="JsonpServiceBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
</behaviors>
<services>
<service name="RivWorks.Web.Service.NegotiateService">
<endpoint address=""
binding="customBinding"
bindingConfiguration="jsonpBinding"
behaviorConfiguration="JsonpServiceBehavior"
contract="RivWorks.Web.Service.NegotiateService" />
</service>
</services>
<extensions>
<bindingElementExtensions>
<add name="jsonpMessageEncoding" type="RivWorks.Web.Service.JSONPBindingExtension, RivWorks.Web.Service, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</bindingElementExtensions>
</extensions>
<bindings>
<customBinding>
<binding name="jsonpBinding" >
<jsonpMessageEncoding />
<httpTransport manualAddressing="true"/>
</binding>
</customBinding>
</bindings>
</system.serviceModel>
正如我所说,代码贯穿始终,所以我想弄清楚为什么它没有发送响应。
最佳答案
很抱歉,我没有适合您的直接解决方案,但在追查与 WCF 相关的问题时,我发现打开 WCF 跟踪日志,运行场景,然后查看日志SvcTraceViewer.exe 帮助...您将获得对堆栈的一些可见性,这很可能是您遇到问题的地方。
您可以使用“WCF Service Configuration Editor”来打开/关闭各种日志设置和级别。
关于c# - WCF - (504) 服务器未返回对此请求的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2157110/
阅读 Doug 的“Javascript: the goods parts”中关于函数的第 4 章谈论“方法调用模式”和“函数调用模式”(第 28 页)。 When a function is sto
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
在 Inkscape 中创建的文件的 svg 路径如下 -- d="m 1.2499932,903.60456 0,146.50004 197.7500068,0 0,-146.50004 -197.
有没有办法只为类对象制作 setter/getter?我的意思是,无论如何要在类里面为 this 设置 get/set 吗?例如: class something { constructor(
int main(int argc,char **argv){ for (argc--, argv++; argc > 0; argc -= argCount, argv += argCount) {
正如 Scott Meyers 和 Andrei Alexandrescu 在 this 中概述的那样文章 简单尝试实现双重检查锁定实现在 C++ 中特别是不安全的,并且通常在不使用内存屏障的多处理器
我正在尝试使用ionic 3 发布一个android 应用程序,但是运行时出现错误 apksigner verify myapp.apk 这些错误显示: WARNING: META-INF/andro
Java网站教程中的这个例子page .两个接口(interface)定义了相同的默认方法 startEngine()。类 FlyingCar 实现了这两个接口(interface),并且由于明显的冲
我在我的桌面应用程序中做了一些非常简单的错误记录,该应用程序通过 SerialPort 与设备通信。我做的一件事是设置一个全局异常捕获器,它除了使用以下方法记录堆栈跟踪外什么都不做: AppDomai
根据 SQL 规范,对此 sql 查询的这些响应中哪些更正确? 这是mysql更高版本的响应 C:\wamp\bin\mysql\mysql5.7.11\bin>mysql.exe --version
我正在尝试解决 GEEK COUNT spoj 的问题。我解决这个问题的方法是先找到所有奇数位的数字,然后从给定的数字中减去它。为了查找所有奇数位的数字计数,我使用了简单的排列。它为我提供了所有可能的
我有这个基本的文本检查代码,在 iOS 7 之前一直运行良好: NSMutableCharacterSet*testchars=[NSCharacterSet alphanumericChara
我对下面的代码感到困惑: class MyException extends Exception {} class AnotherException extends MyException {} cl
我在这段代码中遇到编译错误 #include #include #include using namespace std; void main(int argc
我在我的应用程序中使用导航组件,最近它工作正常但是在将项目更新到 AndroidX 之后我收到错误消息 navigation destination DESTINATION_NAME is unkno
{ "status":"success", "contents":[ { "id":"100", "event":"",
我是一名优秀的程序员,十分优秀!