SiteCore urls without .aspx extension - sitecore

I want to have pages accessed as if they were folders. For example:
domain.com/state
domain.com/state?val=xxx
But I can only get:
domain.com/state.aspx
How do I configure Sitecore to ignore the .aspx extension?

In Sitecore web.config, set addAspxExtension to false in LinkManager
<add name="sitecore" type="Sitecore.Links.LinkProvider, Sitecore.Kernel" addAspxExtension="false" alwaysIncludeServerUrl="false" encodeNames="true" languageEmbedding="never" languageLocation="filePath" shortenUrls="true" useDisplayName="false" />
After doing this, you also need to map wild card extensions in IIS

There are several approaches to this depending on your version of IIS. This SDN scrapbook entry covers the scenarios and provides sample code.
You can also read more about how the dynamic item URLs are generated.

This isn't a Sitecore configuration issue, it's IIS. You need to set up your site in IIS so that ASP.NET is handling all extensions.
Here is a thread about this topic in the SDN forum.

Related

how to change .vs\config\applicationhost.config once and for all?

I have an ASP.Net MVC web application. When i initially created the project i specified it as a windows authentication. After some experimentation and development, the requirements shifted away from windows authentication, so i reconfigured the solution/web config etc. to allow anonymous authentication, and to disable windows authentication. However, i seem to have missed something somewhere along the way.
My web application now works great when i publish it, but i am constantly needing to edit the .vs\config\applicationhost.config file.
The config file defaults to the following state whenever i open the solution in visual studio:
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
These edits are required to get my ctrl+F5 functionality to work, each time i open the project in visual studio 2017.
At this stage i am not exactly sure, whether i should be looking at some setting in visual studio or perhaps IIS Express, so any help would be greatly appreciated!
I received the following communication from Bill H. at Microsoft which resolved the issue, sharing here in case anyone else encounters this problem:
"The value is stored in the project file so that it can be applied when you first download/clone a project. You can change the value in the property grid - select the project and press F4 to see the property grid"

Why can't I publish my web site in VS2017?

When I try to publish my ASP.Net MVC web site, I get the following page:
The lonely looking Publish button does nothing.
Any ideas how I fix this?
I had similar problem and it solved by changing csproj file:
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
changed to
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets" Condition="true" />
This only works of course if you're trying to update an older project to the newer VS2017 environment.

Bug: VS 2017 ASP.NET Core app published to IIS [same machine]

First creating a new project in VS 2017 with template of ASP.NET Core (and individual authentication) does not have a web.config; yet is added upon publishing the app to C:\inetpub\wwwroot (on new install of Window server 2016, and VS on same machine).
When published, it fails to open a web page giving a "500 - Internal server error" page display. Going into IIS Manager after clicking on mySite in left panel, trying to click on anything in the middle panel for the hosted web site fails to open with this error:
As you can also see it gives no information into the actual error.
So not sure why it's looking to \\?\C: for the web.config file? I believe if I can get help resolving this the web page should load; as it does load in development. As stated this issue is occurring on just deployment of a basic ASP.NET Core template; but it also is doing the same thing with my previous web site created with VS 2015 Community ported over to VS 2017 (with required update to it by VS)
The web.config file, which is only in the published app folder and not the development project folders, is:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\Laier-IT.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
</system.webServer>
</configuration>
This type of issue is typical of an IIS configuration that is not configured for .Net Core.
In order to host .Net Core applications in IIS it is necessary to install the .NET Core Windows Server Hosting bundle.
For detailed instructions on installing the .Net Core Windows Server Hosting bundle checkout the Microsoft documentation on installing .Net Core Windows Server Hosting.
This document also provides extensive information on deploying .Net Core to IIS and various other HTTP Servers.
Additionally you need to set the .Net CLR to no managed code in the application pool settings:

Google Cloud Messaging on Google Glass

Has anyone attempted Google Cloud Messaging from Google Glass?? I am guessing there may be an issue with Google Play services, but I have not looked deep into it yet and wanted to see if anyone had tried.
As people report, there are no Play Services on Glass: issue on google-glass-api tracker.
This means you can't use neither GCM, nor Maps API etc.
What is strange though, if you decompile GlassHome.apk, you can see in AndroidManifest.xml:
<permission android:name="com.google.glass.home.permission.C2D_MESSAGE" android:protectionLevel="signature" />
...
<receiver android:name="com.google.android.gcm.GCMBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.google.glass.home" />
</intent-filter>
</receiver>
So, it seems like they've got one.
I digged deeper and found, that inside GlassHome.apk they do have com.google.android.gcm package. So, it seems like, they integrated valuable Play Services parts into GlassHome.apk, but they didn't put that API part into the system.
Glass is in the testing stage, so this situation can change in the near future...
You can get GCM working (just tested) using the old deprecated way with gcm.jar from the android sdk. See http://androidmyway.wordpress.com/2012/07/09/gcm-demo/

Configuring Multiple sites in Sitecore

I have a general query about configuring multiple sites in Sitecore.
To simplify i would split the question in 2 parts:
I have multiple sites created under a single instance of sitecore on my Win XP machine for e.g http://www.site1.com/, http://www.site2.com etc
I then configured my web.config to reflect the multiple sites like so...
<sites>
<site name="website" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" startItem="/home" database="web" .../>
<site name="website1" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" hostName="www.site1.com" startItem="/home1" database="web" .../>
...
</sites>
Then i made the corresponding host entry in the hosts file.
This works fine and i am able to access multiple sites on a browser.
Problem:
The same steps repeated on a Win 2008 R2 system does not work. Do i need to do any additional configuration?
I have downloaded and installed a Multiple Sites Manager package on my existing sitecore installation.
After doing that, my existing sites are not loading anymore.
What is going wrong here.
I have checked for any web.config entries, or any additional configuration files created in the c:\inetpub\wwwroot\<site>\website folder but could not find anything.
Any solutions/pointers in this regard would help.
One possible cause could be that you do not have the correct bindings set up in IIS 7 for the hostnames mapped in your web.config (unless you have a wildcard binding already)?
It may be the order of your tags. Generally these should go from most explicit to most default. The second one specifies a hostname, so this should go above the one without the hostname.
Daniel
It might be that you access the server efrom a remote client PC - you would need to update the hosts file on the remote client PC, or create an actual host entry in the DNS records.
Is the browser running on the server, or on a remote client?
Regards,
-John