Print Page | Close Window

Issues Setting up BOS on IIS

Printed From: IdeaBlade
Category: DevForce
Forum Name: DevForce 2009
Forum Discription: For .NET 3.5
URL: http://www.ideablade.com/forum/forum_posts.asp?TID=1065
Printed Date: 28-Apr-2026 at 3:21am


Topic: Issues Setting up BOS on IIS
Posted By: stevepro
Subject: Issues Setting up BOS on IIS
Date Posted: 22-Jan-2009 at 6:43am
Let me preface this with the fact I have been setting up IIS servers for several years in classic ASP and ASP.Net in Particular I have written and deployed 3 WCF Services hosted in IIS and taken Juval Lowys WCF class but I am new to IB EF and am setting this up for other members of the company.
 
Setting up the IIS Server:
 
I can access EntityServer.svc and EntityService.svc with a Browser both with HTTP and HTTPS. The log file is written and all messaging seems to be ok except
 
EntityServer created for DataSourceExtension: [None]
 
I am not sure what EntityService*.svc is. What does the * represent. I assume Data Extension Name. Where is that found and how can I configure that. The /IIS Files has samples but they are not clear at least to me. Is the final file name supposed to be EntityServiceMYAPP.svc or just MYAPP.svc?
 
Also on the client I get a message:

Unable to connect to http://domain.com/EntityService - http://domain.com/EntityService

Seems like the client is only specifying a sub-folder of the specified remoteBaseUrl. I have the files in the root of the web. When I create a  sub-folder named EntityService and place the *.scv files in it get the same error with the InnerException "The remote server returned an unexpected response: (405) Method Not Allowed." the browser works here also.
 
If I remove the sub-folder the Inner Exception is:
"There was no endpoint listening at https://domain.com/EntityService - https://domain.com/EntityService that could accept the message"
Since the Endpoint is not configurable in the web.config I wonder if your documentation is missing something.
 
Probably I am missing something.
 
I have another WCF service running on the same machine in another Web Site so WCF is setup properly.
 
TIA



Replies:
Posted By: kimj
Date Posted: 22-Jan-2009 at 11:31am
1) EntityServer created for DataSourceExtension: [None]
 
An EntityServer is created for each data source extension used.  You use a data source extension when you construct an EntityManager - by default the extension is null (none).   I see that we've unfortunately omitted the discussion of data source keys and extensions from our current documentation, but in brief an extension allows you to target an alternate set of EdmKeys at runtime; DevForce uses both the data source key name associated with each Entity and the data source extension provided with the EntityManager to resolve the actual EdmKey used to access the data source.
 
2) I am not sure what EntityService*.svc is. What does the * represent. I assume Data Extension Name. Where is that found and how can I configure that. The /IIS Files has samples but they are not clear at least to me. Is the final file name supposed to be EntityServiceMYAPP.svc or just MYAPP.svc?
 
You should always just have one EntityService.svc file - the EntityService is kind of a gateway to the EntityServers.  You'll need an EntityServer_XXX.svc for each of the data source extensions used.  If you don't use any extensions, then only EntityServer.svc is needed.  If you use an extension of "Dev" for example, then you'll need an EntityServer_Dev.svc.
 
3) Unable to connect to http://domain.com/EntityService - http://domain.com/EntityService
 
Since you're hosting the BOS in IIS, the client URL should be resolved to something like http://domain.com/EntityService.svc - http://domain.com/EntityService.svc or http://domain.com/MyVRoot/EntityService.svc - http://domain.com/MyVRoot/EntityService.svc .  The URL is formed using information from the client's <objectServer> element in the ideaBlade.v4 configuration section.  The client log file should also indicate how it determined that address - i.e., using the ideaBlade configuration or serviceModel configuration.
 
 
 


Posted By: stevepro
Date Posted: 22-Jan-2009 at 12:21pm
Thanks for the Reply
 
Below are a couple entries from the client log
 
Unable to connect to https://mydomain.com/EntityService - https://mydomain.com/EntityService
System.ServiceModel.EndpointNotFoundException: There was no endpoint listening at https://mydomain.com/EntityService - https://mydomain.com/EntityService
 
Seems as if it it missing the .svc extension when the URL is created on the client. The file EntityService.svc does exist in the root of the web.


Posted By: kimj
Date Posted: 22-Jan-2009 at 1:03pm
Check your client-side config file for the <objectServer> entry:  you need to ensure it's correct for your service location.  The serviceName attribute should include your application / virtual directory name plus "EntityService.svc".  
 
Here's an example:
        <objectServer isDistributed="true"
            remoteBaseURL=" http://localhost - http://localhost "
            serverPort="80"
            serviceName="MyApp/EntityService.svc" 
        />
Also, are you using https or is that a typo?  I would first try getting standard http communications working without adding SSL to the mix.   If using SSL, you may also need to use a client-side serviceModel configuration to ensure communications are configured correctly.  But again, first try the out-of-the-box configuration to get these other problems worked out.
 


Posted By: stevepro
Date Posted: 22-Jan-2009 at 1:03pm
Found the issue with the missing .svc
 

serviceName="EntityService.svc" I had only

serviceName="EntityService"

 

Duhhhhh...




Print Page | Close Window