URI prefix is not recognized when using WebClient with Unity WebGL - webclient

These code below will generate error "The URI prefix is not recognized", I already check the url,it's correct url format,it's my server url about upload function.
string url = "http://[skip]";
WebClient wc = new WebClient();
byte[] result = wc.UploadData(url,"PUT", data);
Error result in Chrome Developer console is below:
NotSupportedException: The URI prefix is not recognized.
at System.Net.WebRequest.Create (System.Uri requestUri, System.Boolean useUriBase) [0x00000] in <00000000000000000000000000000000>:0
Rethrow as WebException: An exception occurred during a WebClient request.
at System.Net.WebClient.UploadDataInternal (System.Uri address, System.String method, System.Byte[] data, System.Net.WebRequest& request) [0x00000] in <00000000000000000000000000000000>:0
(Filename: currently not available on il2cpp Line: -1)
warning: 2 FS.syncfs operations in flight at once, probably just doing extra work
Unity version:2018.1.0b13
Build platform:WebGL
API Compatibility Level: .Net 4.x
Scripting Runtime Version:Stable(.Net 4.x Equivalent)

Related

"Installing MDriven Server on Windows" - cannot access local Turnkey

I have tried to install MDriven Server and Turnkey according to the page "Installing MDriven Server on Windows" (https://wiki.mdriven.net/index.php/Installing_MDriven_Server_on_Windows) and the Video (https://www.youtube.com/watch?time_continue=722&v=q0ppL5sMPGg).
Installed versions are MDrivenServer_20190411.zip and MDrivenTurnkey_20190415.zip
The PC is a Windows 2019 Server (also tried on Windows 10 Workstation, results are identical!).
I can open the MDriven Server pages (https://MyServer/MyTurnkeyApp/__MDrivenServer) everything looks fine, i.e.:
I created a new "a" user with a known PWD according to the Video
DB connectivity/check/evolve is fine
https/Self-signed SSL certificate works as expected
MDrivenServer works as expected and as described in the article & video!
However I cannot go to the Turnkey pages (https://MyServer/MyTurnkeyApp).
I always get an error message:
Server Error in '/MyTurnkeyApp' Application.
Not able to start, check the CurrentVersion - is it set? Check that the app is Started and not Paused. Check that the Version is in DatabaseUpdated state.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Exception: Not able to start, check the CurrentVersion - is it set? Check that the app is Started and not Paused. Check that the Version is in DatabaseUpdated state.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[Exception: Not able to start, check the CurrentVersion - is it set? Check that the app is Started and not Paused. Check that the Version is in DatabaseUpdated state.]
AppCompleteGeneric.ACApplication.GetStartedAndRunningFromDatabaseIdentity(EcoSpace adminEcoSpace, DatabaseIdentity databaseIdentity) in c:\capableobjectsbuild2017\source\AppCompleteGeneric\AppCompleteGeneric.Model\AppCompleteGeneric\ACApplication.cs:51
TurnKeyEcoSpaceWithModelFromServer.TurnKeyEcoSpaceCreator.GetBlank(String databaseID) in c:\capableobjectsbuild2017\source\StreamingApp\StreamingAppGenericAPIAndControllers\TurnKeyEcoSpaceCreator.cs:115
TurnKeyEcoSpaceWithModelFromServer.TurnKeyEcoSpaceCreator.BorrowEcoSpace(EcoSpaceRequestInfo requestInfo) in c:\capableobjectsbuild2017\source\StreamingApp\StreamingAppGenericAPIAndControllers\TurnKeyEcoSpaceCreator.cs:289
Eco.MVC.EcoController1.EnsureEcoSpace(String shelfKey) in c:\capableobjectsbuild2017\source\Eco\Eco.MVC\EcoController.cs:408
Eco.MVC.EcoController1.OnActionExecuting(ActionExecutingContext filterContext) in c:\capableobjectsbuild2017\source\Eco\Eco.MVC\EcoController.cs:549
Eco.MVC.ModelDrivenControllerBase1.OnActionExecuting(ActionExecutingContext filterContext) in c:\capableobjectsbuild2017\source\Eco\Eco.MVC\ModelDrivenControllerBase.cs:97
System.Web.Mvc.Async.AsyncInvocationWithFilters.InvokeActionMethodFilterAsynchronouslyRecursive(Int32 filterIndex) +261
System.Web.Mvc.Async.<>c__DisplayClass33.<BeginInvokeActionMethodWithFilters>b__31(AsyncCallback asyncCallback, Object asyncState) +100
System.Web.Mvc.Async.WrappedAsyncResultBase1.Begin(AsyncCallback callback, Object state, Int32 timeout) +166
System.Web.Mvc.Async.AsyncControllerActionInvoker.BeginInvokeActionMethodWithFilters(ControllerContext controllerContext, IList1 filters, ActionDescriptor actionDescriptor, IDictionary2 parameters, AsyncCallback callback, Object state) +333
System.Web.Mvc.Async.<>c__DisplayClass21.b__19(AsyncCallback asyncCallback, Object asyncState) +1151
System.Web.Mvc.Async.WrappedAsyncResultBase1.Begin(AsyncCallback callback, Object state, Int32 timeout) +166
System.Web.Mvc.Async.AsyncControllerActionInvoker.BeginInvokeAction(ControllerContext controllerContext, String actionName, AsyncCallback callback, Object state) +463
System.Web.Mvc.Controller.<BeginExecuteCore>b__1c(AsyncCallback asyncCallback, Object asyncState, ExecuteCoreState innerState) +42
System.Web.Mvc.Async.WrappedAsyncVoid1.CallBeginDelegate(AsyncCallback callback, Object callbackState) +73
System.Web.Mvc.Async.WrappedAsyncResultBase1.Begin(AsyncCallback callback, Object state, Int32 timeout) +166
System.Web.Mvc.Controller.BeginExecuteCore(AsyncCallback callback, Object state) +906
System.Web.Mvc.Async.WrappedAsyncResultBase1.Begin(AsyncCallback callback, Object state, Int32 timeout) +166
System.Web.Mvc.Controller.BeginExecute(RequestContext requestContext, AsyncCallback callback, Object state) +711
System.Web.Mvc.MvcHandler.b__4(AsyncCallback asyncCallback, Object asyncState, ProcessRequestState innerState) +93
System.Web.Mvc.Async.WrappedAsyncVoid1.CallBeginDelegate(AsyncCallback callback, Object callbackState) +73
System.Web.Mvc.Async.WrappedAsyncResultBase1.Begin(AsyncCallback callback, Object state, Int32 timeout) +166
System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state) +522
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +1020
System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) +195
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +128
Any idea what's wrong?
Check this answer: MDriven Server installation
I think it is the same issue.
You have no model uploaded to mdriven server
or the model is not selected as current
or the app slot A0 is not started in mdriven server.

CRM Dynamics IOrganizationService SOAP Execute fails with the latest SDK

I have been using the latest Xrm sdk to access the metadata of my company's dynamics 365 account. This has been working well for some time, however it has broken all of a sudden roughly 3 weeks ago. There has been no code changes. This only means something has changed in their side.
Following is the code that has been used and it is very simple. The only information I have got till now is that their Security Protocol has changed to Tls12 and therefore tried to set that info before Organization Service object is created like so
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
But that has no influence either.
var sc = ServiceConfigurationFactory.CreateConfiguration<IOrganizationService>(new Uri("soap-url-from-365-developer-resources"));
var cc = new ClientCredentials();
cc.UserName.UserName = "username";
cc.UserName.Password = "password";
var organizationServiceProxy = new OrganizationServiceProxy(sc, cc);
organizationServiceProxy.EnableProxyTypes();
RetrieveAllEntitiesRequest request = new RetrieveAllEntitiesRequest()
{
EntityFilters = EntityFilters.Attributes,
RetrieveAsIfPublished = true
};
try
{
using (var organizationServiceContext = new CrmOrganizationServiceContext(organizationServiceProxy))
{
RetrieveAllEntitiesResponse response = (RetrieveAllEntitiesResponse)organizationServiceContext.Execute(request);
var entities = response.EntityMetadata
.Where(x => x.DisplayName.UserLocalizedLabel != null &&
!string.IsNullOrWhiteSpace(x.DisplayName.UserLocalizedLabel.Label)
)
.ToList();
}
}
catch (Exception ex)
{
Console.WriteLine("GetAllEntities {0}", ex.Message); }
The error during Execute is as follows
System.InvalidOperationException: Metadata contains a reference that cannot be resolved: 'https://macfar.crm4.dynamics.com/XRMServices/2011/Organization.svc?wsdl&sdkversion=9'. ---> System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. ---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
--- End of inner exception stack trace ---
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.FixedSizeReader.ReadPacket(Byte[] buffer, Int32 offset, Int32 count)
at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result)
at System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.ConnectStream.WriteHeaders(Boolean async)
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.GetResponse()
at System.ServiceModel.Description.MetadataExchangeClient.MetadataLocationRetriever.DownloadMetadata(TimeoutHelper timeoutHelper)
at System.ServiceModel.Description.MetadataExchangeClient.MetadataRetriever.Retrieve(TimeoutHelper timeoutHelper)
--- End of inner exception stack trace ---
at System.ServiceModel.Description.MetadataExchangeClient.MetadataRetriever.Retrieve(TimeoutHelper timeoutHelper)
at System.ServiceModel.Description.MetadataExchangeClient.ResolveNext(ResolveCallState resolveCallState)
at System.ServiceModel.Description.MetadataExchangeClient.GetMetadata(MetadataRetriever retriever)
at Microsoft.Xrm.Sdk.Client.ServiceMetadataUtility.RetrieveServiceEndpointMetadata(Type contractType, Uri serviceUri, Boolean checkForSecondary)
at Microsoft.Xrm.Sdk.Client.ServiceConfiguration`1..ctor(Uri serviceUri, Boolean checkForSecondary)
at Microsoft.Xrm.Sdk.Client.OrganizationServiceConfiguration..ctor(Uri serviceUri, Boolean enableProxyTypes, Assembly assembly)
at Microsoft.Xrm.Sdk.Client.ServiceConfigurationFactory.CreateConfiguration[TService](Uri serviceUri, Boolean enableProxyTypes, Assembly assembly)
at Microsoft.Xrm.Sdk.Client.ServiceProxy`1..ctor(Uri uri, Uri homeRealmUri, ClientCredentials clientCredentials, ClientCredentials deviceCredentials)
I have tried everything that comes up googling this error message, however in vain. Therefore any help to work around this issue is greatly appreciated
There have been quite a few changes in the SDK compatibility in the last year.
You will need to make sure you have the right SDK version to match your .Net Framework and CRM versions.
Dynamics 365 SDK Backwards Compatibility
With the deprecation of Azure Access Control Service (ACS), we have to
modify our SDK authentication code by removing all references to ACS.
Effective from versions Microsoft Dynamics CRM Online 2016 Update 1
(v8.1.1) and Microsoft Dynamics 365 (v8.2), we removed Live ID support
and ACS dependencies on the server-side.
We also removed Microsoft.Xrm.Client from the CRM 2016 (8.x) SDK
client because it was not compliant with the OAuth changes, and
replaced it with Microsoft.Xrm.Tooling.Connector. You can use the
current Microsoft Dynamics 365 Software Development Kit (SDK) to
access Microsoft Dynamics CRM back to version 6.x for both auth and
messaging.
When upgrading to Dynamics 365, make sure you use the latest Microsoft
Dynamics 365 Software Development Kit (SDK). The following outlines
the current supported matrix for other SDK clients:

Why is my self hosted Web API service throwing an exception on Windows 2012?

I have an app. I'm working on which self-hosts WebApi. It can run as either a command-line app, or as a Windows service. It's compiled using the .NET 4.5 runtimes.
When I run it on my Windows 7 dev. machine, it works fine.
When I deploy and run as a command-line app on my Windows 2012 server machine, it fails with the exception:
Exception has been thrown by the target of an invocation.
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments,
Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Objec
t[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invoke
Attr, Binder binder, Object[] parameters, CultureInfo culture)
at Owin.Loader.DefaultLoader.<>c__DisplayClass12.<MakeDelegate>b__b(IAppBuild
er builder)
at Owin.Loader.DefaultLoader.<>c__DisplayClass1.<LoadImplementation>b__0(IApp
Builder builder)
at Microsoft.Owin.Hosting.Engine.HostingEngine.ResolveApp(StartContext contex
t)
at Microsoft.Owin.Hosting.Engine.HostingEngine.Start(StartContext context)
at Microsoft.Owin.Hosting.Starter.DirectHostingStarter.Start(StartOptions opt
ions)
at Microsoft.Owin.Hosting.Starter.HostingStarter.Start(StartOptions options)
at Microsoft.Owin.Hosting.WebApp.StartImplementation(IServiceProvider service
s, StartOptions options)
at Microsoft.Owin.Hosting.WebApp.Start(StartOptions options)
at Microsoft.Owin.Hosting.WebApp.Start[TStartup](StartOptions options)
My code does this:
url = "http://localhost:5000";
_app = WebApp.Start<WebAppConfiguration>(url);
And the WebAppConfiguration class looks like this:
public class WebAppConfiguration : HttpConfiguration
{
public void Configuration(IAppBuilders app)
{
ConfigureRoutes();
ConfigureJsonSerialization();
// This line throws the exception:
app.UseWebApi(this);
}
}
I did some searching and it sounded like I needed to reserve the port using NETSH, so this is what I did from an Admin command prompt:
netsh http add urlacl url=http://localhost:5000/ user=Everyone listen=yes delegate=yes
Unfortunately, I'm still getting the exception. Is there some other step I need to do to get this to work under Windows Server 2012?
EDIT:
The inner exception (which I didn't think to log) contained a much more helpful error. It turns out I was missing an assembly binding entry for Microsoft.Owin in my .config file for Owin. This was in my dev. version but didn't make it into the version on my server.

Xamarin PCL Unhandled Exception: TargetInvocationException

Im making an mobile application which can communicate with Dynamics AX using a WCF service.
Im fairly new to Xamarin, and im trying to create a PCL library for a shared IOS and Android application. Im also working on an Windows Phone App which pretty much works by now. Im using a WCF service ive created which does all the communication with Dynamics AX, and the service exposes its methods using Metadata. I've added a Service Reference to the Windows Phone solution and the generated Proxy works like a charm, i should say im using SOAP.
But if i transfer the generated Reference.cs file to my Xamarin PCL project and call my method the exact same way i get the following error:
Unhandled Exception:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Runtime.Serialization.SerializationException: Expected element 'ExceptionDetail' in namespace 'http://schemas.datacontract.org/2004/07/System.ServiceModel', but found Element node 'AifFault' in namespace 'http://schemas.microsoft.com/dynamics/2008/01/documents/Fault'
at System.Runtime.Serialization.XmlFormatterDeserializer.Deserialize (System.Xml.XmlReader reader, System.Type declaredType, System.Runtime.Serialization.KnownTypeCollection knownTypes, IDataContractSurrogate surrogate, System.Runtime.Serialization.DataContractResolver resolver, System.Runtime.Serialization.DataContractResolver defaultResolver, System.String name, System.String ns, Boolean verifyObjectName) [0x0003e] in ///Library/Frameworks/Xamarin.iOS.framework/Versions/7.4.0.108/src/mono/mcs/class/System.Runtime.Serialization/System.Runtime.Serialization/XmlFormatterDeserializer.cs:63
at System.Runtime.Serialization.DataContractSerializer.ReadObject (System.Xml.XmlDictionaryReader reader, Boolean verifyObjectName) [0x00024] in ///Library/Frameworks/Xamarin.iOS.framework/Versions/7.4.0.108/src/mono/mcs/class/System.Runtime.Serialization/System.Runtime.Serialization/DataContractSerializer.cs:363
at System.Runtime.Serialization.XmlObjectSerializer.ReadObject (System.Xml.XmlDictionaryReader reader) [0x00000] in ///Library/Frameworks/Xamarin.iOS.framework/Versions/7.4.0.108/src/mono/mcs/class/System.Runtime.Serialization/System.Runtime.Serialization/XmlObjectSerializer.cs:76
at System.ServiceModel.MonoInternal.ClientRuntimeChannel.Request (System.ServiceModel.Description.OperationDescription od, System.Object[] parameters) [0x0019b] in ///Library/Frameworks/Xamarin.iOS.framework/Versions/7.4.0.108/src/mono/mcs/class/System.ServiceModel/System.ServiceModel/ClientRuntimeChannel.cs:550
at System.ServiceModel.MonoInternal.ClientRuntimeChannel.DoProcess (System.Reflection.MethodBase method, System.String operationName, System.Object[] parameters) [0x00038] in ///Library/Frameworks/Xamarin.iOS.framework/Versions/7.4.0.108/src/mono/mcs/class/System.ServiceModel/System.ServiceModel/ClientRuntimeChannel.cs:496
at System.ServiceModel.MonoInternal.ClientRuntimeChannel.Process (System.Reflection.MethodBase method, System.String operationName, System.Object[] parameters) [0x0001c] in ///Library/Frameworks/Xamarin.iOS.framework/Versions/7.4.0.108/src/mono/mcs/class/System.ServiceModel/System.ServiceModel/ClientRuntimeChannel.cs:477
--- End of inner exception stack trace ---
The issue only occurs when AX return an AIFFault Exception and for some reason it cant be caught by Xamarin.. Its caught just fine in Visual Studio in Windows Phone.
Here is the code from making the call:
try{
var result = await _service.ExecuteGetMethod(MyRecord)
}
catch(FaultException fe){
ShowError(fe);
}
This works just fine, and the error message from AX is showed in fe.Message, but running the exact same in Xamarin gives me the above error.
Do i need to add AIFFault somewhere in my WCF service for clients to be able to see it?

SOAP Security negotiation Error while calling Microsoft Dynamics CRM 2011 sdk IOrganizationServiceProxy web service

we have a virtual machine in our company that contains sqlserver and crm 2011 installed on It which we use It for testing our codes and I have written a simple webservice to call the sdk IOrganizationServieProxy webservice . on this Virtual machine my code works perfeclty with no error . BUT here is the situation : we have two other virtual machines , on one of them the sql server is installed and on the other one crm is installed and configured . the crm works fine but when I try to use my web service which calls the crm sdk IOrganizationServieProxy webservice webmethods I get the following errorr , any Ideas what could be wrong ? thanks in advance for anyone who answears this question .
System.ServiceModel.Security.SecurityNegotiationException: SOAP security negotiation with 'http://localhost/KN/XRMServices/2011/Organization.svc' for target 'http://localhost/KN/XRMServices/2011/Organization.svc' failed. See inner exception for more details. ---> System.ComponentModel.Win32Exception: The Security Support Provider Interface (SSPI) negotiation failed.
at System.ServiceModel.Security.WindowsSspiNegotiation.GetOutgoingBlob(Byte[] incomingBlob, ChannelBinding channelbinding, ExtendedProtectionPolicy protectionPolicy)
at System.ServiceModel.Security.SspiNegotiationTokenProvider.GetNextOutgoingMessageBody(Message incomingMessage, SspiNegotiationTokenProviderState sspiState)
at System.ServiceModel.Security.IssuanceTokenProviderBase`1.GetNextOutgoingMessage(Message incomingMessage, T negotiationState)
at System.ServiceModel.Security.IssuanceTokenProviderBase`1.DoNegotiation(TimeSpan timeout)
--- End of inner exception stack trace ---
Server stack trace:
at System.ServiceModel.Security.IssuanceTokenProviderBase`1.DoNegotiation(TimeSpan timeout)
at System.ServiceModel.Security.SspiNegotiationTokenProvider.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.Security.SymmetricSecurityProtocol.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.Channels.SecurityChannelFactory`1.ClientSecurityChannel`1.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce(TimeSpan timeout, CallOnceManager cascade)
at System.ServiceModel.Channels.ServiceChannel.EnsureOpened(TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at Microsoft.Xrm.Sdk.IOrganizationService.RetrieveMultiple(QueryBase query)
at Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy.RetrieveMultipleCore(QueryBase query)
at KNCRMSearchWebService.searchContactsByNameAndFamilyName(String cl, String Name, String Family)
and here is an image from my visualstudio debug mode which shows the error :
It may not apply, but I have run into problems when the URL I used didn't match the WCF bindings set in the CRM Deployment Manager.
For instance, a server named "MyCRMServer" might be listening on port 80 at:
http://MyCrmServer/
...but if I had changed my CRM Server in Deployment Manager to url "crm.myCompany.com" then I have to use this URL to access web services:
http://crm.myCompany.com/