我的WCF服务应用程序通过http和https工作,但是,当我在客户端向其添加服务引用(使用https url)时,Visual Studio 2010将配置文件中的端点设置为http.它似乎并不像将配置端点更改为https那么简单,因为幕后有多个文件使用xsd进行操作并引用http端点.如何设置我的服务/客户端以强制https以便正确设置端点?
当我尝试手动更改配置文件中的端点并将安全模式设置为"传输"时,我收到此错误:
异常消息:https://myservice/AvailabilityService.svc上没有可以接受消息的端点监听 .这通常是由错误的地址或SOAP操作引起的.有关更多详细信息,请参阅InnerException(如果存在).
但是,我可以在IE中看到该端点,并在本地进行调试.在我使用https添加我的服务引用并搜索解决方案的http等效之后,它会找到一个引用http的wsdl文件,一个configuration.svcinfo和一个使用http url而不是https的configuration91.svcinfo
这是我的服务器端配置:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
..和客户端配置:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IAvailabilityService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="Transport">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" …Run Code Online (Sandbox Code Playgroud) 我构建了一个最小的Web服务,并使用javax.xml.ws.Endpoint发布它.如果我试图获得WSDL
http://localhost:1234/AddService?wsdl它工作正常.
试图收到它http://192.168.0.133:1234/AddService?wsdl,我没有收到任何东西.该地址与localhost相同.
是否有可能在不提供地址的情况下发布网络服务?
package test;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
@WebService
public class AddService {
@WebMethod
public int add(int a, int b){
return a+b;
}
public static void main(String[] args ){
Endpoint.publish("http://localhost:1234/AddService", new AddService());
}
}
Run Code Online (Sandbox Code Playgroud)
将代码更改为
Endpoint.publish("http://192.168.0.133:1234/AddService", new AddService());
Run Code Online (Sandbox Code Playgroud)
获取IP地址上的wsdl但不是localhost.
是不是只有定义端口的可能性?
链接到"反馈中心" 的错误报告
音频端点设备(此处称为"端点")是物理或虚拟音频输出或输入设备.
在Windows 10 April Update 1803中,引入了早该应用的"应用程序卷和设备首选项".这些设置允许更多地控制音频流管理,因为现在可以为不同的应用程序设置不同的端点,无论该特定应用程序是否带有端点选择.
但是,有一个问题是程序的音频(其端点是非默认的)在关闭并再次启动后通过默认端点(或根本不是)流式传输,尽管端点在设置中正确显示:
据我所知,可以在具有任何虚拟或物理端点和受影响程序的Windows 10计算机(版本1803或更高版本)上重新创建该问题.我在这个例子中使用了"VLC媒体播放器"(忽略了它带有端点选择的事实),因为它是众所周知的并且可以广泛访问,这样可以更容易地重新创建问题.
我在寻找什么......
...是一种在端点之间切换的编程解决方案,理想情况下可以以脚本的形式启动,以通过应用程序启动设置正确的端点.
为了我的目的,只需手动调整设备实例路径就足够了,因为设备总是一样的,但我也不会抱怨从注册表中检索设备实例路径的解决方案.
HKEY_USERS\# YOUR SID #\Software\Microsoft\Multimedia\Audio\DefaultEndpoint.我不知道windows如何生成子项的名称或它们可以在哪里找到.如果我不得不疯狂猜测,我会说这些是应用程序ID(如果我错了,请随时纠正我).一个可能但不切实际的解决方法......
...将为应用程序手动设置另一个端点,并在每次启动所述应用程序时切换回所需的端点(如上所示).
但是,不是每次启动都至少需要10秒,你甚至可能忘记这样做,因为音频可能只是通过默认端点流式传输*¹.
后者的替代方案是,根本不会传输音频,*²或者在某些情况下它实际上是有效的*³.
*¹ 例如:VLC媒体播放器,Tom Clancy的Rainbow Six Siege(虽然在启动画面期间音频将正确流式传输)
*² 例如:使命召唤4:现代战争,使命召唤:现代战争2,使命召唤:现代战争3
*³ 例如:Window Media Player,Microsoft Edge,Firefox
意见
放弃
我已经尝试了两个第三方软件:"音频路由器",它根本不起作用和"CheVolume",它不能解决问题并且在这样做时不断崩溃.
这个问题基于我在超级用户(这里)询问过的问题,由于我对实际编程缺乏了解,我无法得到答案(我对Batch和PowerShell只有一点熟悉) ).我很清楚,Stack Overflow和Super User都不是脚本编写服务,但是,这个问题没有得到Windows 10 10月更新1809的解决,我认为这是一个不仅影响我的问题,而且会影响我在我之后帮助多个人.如果您对此有不同看法,请随意撰写评论或提出修改建议.
我也不确定标签的"音频流"和"端点"是否应该在这种情况下使用,如果它们不应该或者你能想到更好的话,请提出编辑.
使用第三方软件'EarTrumpet'我能够克服"使命召唤"游戏的问题(重启后根本没有音频),但是,在我指定非默认端点后,"VLC媒体播放器"不会重启用'EarTrumpet'直到我再次关闭'EarTrumpet'并且'Tom Clancy的Rainbow Six Siege'的问题仍然存在. …
事实上,我发现没有其他人在Instagram API中遇到这个问题,这表明我做错了.
如果我要输入:https://api.instagram.com/v1/users/334250900/media/recent/?client_id=xxx&min_id=678453535718114828_919796408并且678453535718114828_919796408是该用户的最新帖子ID,我应该什么也得不回来,对吧?
好吧,我没有.我收到一个帖子 - min_id参数中的一个.
文件说明:
MIN_ID - 晚于此min_id 返回媒体.
但行为似乎是将媒体更新或等同于此min_id.
如果我指定一个min_id是最近的第三篇文章,我应该回复两个帖子,但是不,我得到三个.
当然,我可以丢弃返回数组中的最后一个结果,或者做一些检查以确定我是否已经拥有它 - 但这有点违背了参数的目的.
只有我吗?
我有一个可能相当简单的问题,但我无法找到带有很好解释的答案:
在/应用程序中开发的 RESTful API 上下文中的路由和端点之间有什么区别(如果有的话)(但这些概念可能更广泛?!...)?
(它是否以某种方式与 URL 相关?)Node.jsExpress
例如,在这篇文章中:https : //medium.com/@purposenigeria/build-a-restful-api-with-node-js-and-express-js-d7e59c7a3dfb我们可以读到:
我们导入了在课程开始时安装的 express,app.get 向服务器发出 get 请求,并提供路由/端点作为第一个参数,端点旨在返回数据库中的所有待办事项。
这些概念可以互换使用,这让我感到困惑。
(请注意,我是 REST API、nodejs 和 express 的 100% 初学者,但我会尽力学习)。
编辑:
按时间顺序排列的前两个答案让我更加困惑,因为它们完全是对立的。
从 sveltekit 应用程序启动骨架项目后。我的索引有一种形式:
<script>
let name
let password
async function submitit(){
// console.log("name is :", name)
// console.log("password is :", password)
const doit = async () =>{
let res = await fetch( 'formdata' ,{
method : "post",
headers: {
'Accept': 'application/json',
'content-type' : 'text/html; charset=UTF-8',
//'Content-Type': 'multipart/form-data'
},
body : JSON.stringify({
name : "name",
password : "password"
})
})// fetch
let results =await res.json()
console.log( "xxxxxxxxxxxxxxxxxxxxx" , results )
return results
}
doit().then(data =>{
console.log("data log : " , data) …Run Code Online (Sandbox Code Playgroud) 我一直在研究Apache Camel文档,试图对其最基本的两个概念(端点和路由)进行具体的理解,尽管这些术语在整个文档中随处可见,但我找不到实际定义它们的参考它们是用来做什么的.尽管他们的名字听起来相当明显,而且我想我明白了它们是什么,但我现在已被分配到一项让我深入Apache Camel Land的任务,而且我理解这些机制至关重要是.
我的猜测是"端点"只是一个bean - 可以像配置文件一样配置在配置文件中 - 将名称映射到URI /端口组合(这取自W3C文档).在Apache Camel的上下文中,我的猜测是端点用于将组件连接在一起,因此可以在它们之间形成"路由"(连接/映射).因此,当生活在端点1的组件A想要与生活在端点2的组件B通信时,只要存在从1到2的映射,Camel就能够在这两者之间传输消息.
如果我错在这里,请阻止我并纠正我!
所以现在,我已经看到了可以在Java中配置路由的示例:
from("endpointA").routeId("someMessage").to("endpointB");
Run Code Online (Sandbox Code Playgroud)
我已经看到了可以在XML中配置路由的示例:
<route id="">
<from .../>
<to .../>
</route>
Run Code Online (Sandbox Code Playgroud)
这两种方法是配置路由,还是完全不同的概念?
最后,端点之间可以路由的消息格式是什么?例如,如果它必须是XML,那么这些路由消息的XSD /模式是什么?如果它必须是Java对象,那么哪些边界/限制适用于Camel可以发送的对象?
我为我的WCF服务创建了2个端点.
它工作正常,basicHttpBinding但导致错误webHttpBinding.
错误=未找到端点.
运营合同定义
[OperationContract]
[WebInvoke(Method = "POST",
BodyStyle = WebMessageBodyStyle.WrappedRequest,
ResponseFormat = WebMessageFormat.Json)]
VINDescription CallADSWebMethod(string vin, string styleID);
Run Code Online (Sandbox Code Playgroud)
web.config:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="Description7aBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
<message clientCredentialType="UserName" algorithmSuite="Default"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://services.chromedata.com:80/Description/7a"
binding="basicHttpBinding"
bindingConfiguration="Description7aBinding"
contract="description7a.Description7aPortType"
name="Description7aPort"/>
</client>
<services>
<service behaviorConfiguration="asmx" name="ADSChromeVINDecoder.Service">
<endpoint name="httpEndPoint"
address=""
binding="basicHttpBinding"
contract="ADSChromeVINDecoder.IService"/> …Run Code Online (Sandbox Code Playgroud) 我想使用Camel从ActiveMQ接收消息,然后根据消息内容(protobuf)向Twitter发送一条或多条消息.我编写了一个从路由中调用的bean,它使用注入将多个消息发送到"direct:xyz"端点.
但是,Camel在运行时抱怨:
2012-11-16 09:56:33,376 | WARN | ication.twitter] | DirectProducer | 160 - org.apache.camel.camel-core - 2.10.2 | No consumers available on endpoint: Endpoint[direct://twitter] to process: Exchange[Message: hello world]
Run Code Online (Sandbox Code Playgroud)
如果我从bean内直接注入Twitter端点,它可以正常工作.但是,为了便于测试,简化配置等,我想将实际的Twitter配置分开,因此希望发送到单独的路由.
驼峰上下文配置如下: -
<camelContext id="NotificationTwitter"
trace="false" xmlns="http://camel.apache.org/schema/blueprint">
<dataFormats>
<protobuf id="notificationProto" instanceClass="org.abc.schemas.protobuf.NotificationDef$NotificationMsg" />
</dataFormats>
<route id="TwitterPreparation">
<from uri="activemq:notification.twitter" />
<unmarshal ref="notificationProto" />
<log logName="abc" loggingLevel="INFO"
message="Twitter request received: ${body}" />
<bean ref="NotificationTweeter" method="createTweets" />
</route>
<route id="Twitter">
<from uri="direct:twitter" />
<log logName="abc" loggingLevel="INFO"
message="Tweeting: ${body}" />
<to uri="twitter://timeline/user?consumerKey=itsasecret&consumerSecret=itsasecret&accessToken=itsasecret&accessTokenSecret=itsasecret" />
</route>
</camelContext>
Run Code Online (Sandbox Code Playgroud)
豆看起来像: - …
我对 Wireguard 的理解是服务器和客户端的接口(虽然看起来听不清?)每个都有自己的.conf文件。例如,考虑以下.conf文件。
[Interface]
PrivateKey = some_key_1
Address = 10.193.130.174/16
[Peer]
PublicKey = some_key_2
PresharedKey = some_key_3
AllowedIPs = 10.129.130.1/32
Endpoint = 54.91.5.130:1952
Run Code Online (Sandbox Code Playgroud)
如何判断这是客户端.conf文件还是服务器文件(如果可能的话)?这可能是一个非常简单的问题,但是Endpoint和AllowedIPs字段之间的区别是[Peer]什么?我从CryptoKey Routing推断,一旦interface接收到一个数据包,它就会用interface私钥对其进行解密,并AllowedIPs根据所有信息检查发件人 IP peers,如果凭据实际上与peer它匹配,它就会接受它。在另一方面,如果interface想送它与它加密的数据包peer的公共密钥,但它是将其发送到Endpoint的或一个AllowedIPs?
编辑 1:我确实使用man wg过,Endpoint但对我来说仍然模糊的定义。尽管如此,该AllowedIPs领域似乎更容易掌握。
编辑 2:经过进一步研究,我认为该AllowedIPs字段指定了对等方可用于接收流量或发送流量的 IP 地址。如果有人可以确认或更正这一点,我将不胜感激。